I use Entity Framework that contains view. And I have query:
var data = this.context.vwRevenues .Where(x => x.revenue >= 0); .OrderByDescending(x => x.year) .ThenByDescending(x => x.month) .Take(10) .ToList();
This query returns set of entities, but 1st entity equals 5th.
data == data // true
I take sql script for this query from sql tracer and run it into SQL Management Studio, it returns different records.
As per @Giovane Answer's
We had the same problem in our system with Entity Framework dealing with views. Try using ROW_NUMBER () OVER () SQL to create a column with unique valuesâ€‹â€‹, but did not work.
I did the same thing but to make it work i need to open the EDMX model and then select a this column as an Entity Key.
Then it will work
There is a very good article on this
The articles most important line is:
When including a view in your Entity Model, the model seems to simply use the first not-nullable columns as primary key (as all columns used in the primary key should be non-nullable).
You only need to do:
context.viewname.AsNoTracking().Where(x => x.ColumnName != null);