实体框架.查看退货重复记录 [英] Entity Framework. View return duplicate records
问题描述
我使用包含视图的实体框架.我有疑问:
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();
此查询返回一组实体,但第一个实体等于第 5 个.
This query returns set of entities, but 1st entity equals 5th.
data[0] == data[4] // true
我从 sql tracer 获取此查询的 sql 脚本并将其运行到 SQL Management Studio 中,它返回不同的记录.
I take sql script for this query from sql tracer and run it into SQL Management Studio, it returns different records.
推荐答案
根据@Giovane的回答
我们在系统中遇到了同样的问题,即 Entity Framework 处理视图.尝试使用 ROW_NUMBER () OVER () SQL 创建具有唯一值的列 ,但没有奏效.
我做了同样的事情,但要使其正常工作,我需要打开 EDMX 模型,然后选择此列作为 实体键.
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.
然后就可以了
这方面有一篇很好的文章
There is a very good article on this
文章最重要的一行是:
在实体模型中包含视图时,模型似乎只是使用第一个不可为空的列作为主键(因为主键中使用的所有列都应该是不可为空的).
这篇关于实体框架.查看退货重复记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!