实体框架.查看退货重复记录 [英] Entity Framework. View return duplicate records

查看:7
本文介绍了实体框架.查看退货重复记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用包含视图的实体框架.我有疑问:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆