I realize this is five years later, but I just ran into exactly this situation yesterday, or at least this error message. Here's what I discovered.
I have a view that combines the results of two other views. The C# model that maps to this view clearly says that my property is an integer, and the "union" view as we'll call it, shows that the column type is an "int" in SSMS. However, the "left" and "right" views that it combines each say that the column is a float for some reason. It's possibly because there's an ISNULL operation going on over the original integer value... I'm not sure.
Anyway, the two sub-views have a column that SQL has, for some unknown reason, decided to think of as a float. They get combined together in a third view that seems to understand that we're expecting an integer. At runtime, however, I think the result is being returned to Entity Framework as a float rather than an int, and this makes EF sad, so it throws this error.
Solution:
I added a CAST(<stuff> AS INT)
in each of the two sub-views, and the problem went away.