linq-to-sql – LINQ to Entities未返回预期结果
发布时间:2020-08-03 16:22:14 所属栏目:MsSql 来源:互联网
导读:我正在使用视图返回复杂的搜索查询.当我使用 linq查询EF时,它返回同一行3次(实际的rowcount是正确的). 使用LinqPad我对我的ef实体和实际的数据库视图运行了相同的linq. ReadmitPatientList .AsQueryable() .Where(PatientLastName.StartsWith(cooper)) .Order
我正在使用视图返回复杂的搜索查询.当我使用 linq查询EF时,它返回同一行3次(实际的rowcount是正确的). 使用LinqPad我对我的ef实体和实际的数据库视图运行了相同的linq. ReadmitPatientList .AsQueryable() .Where("PatientLastName.StartsWith("cooper")") .OrderBy (rpl => rpl.PatientLastName) .Dump(); 这就是我正在使用的linq. linqpad将lambda显示为: ReadmitPatientList.MergeAs (AppendOnly) .Where ( => .PatientLastName.StartsWith ("cooper")) .OrderBy (rpl => rpl.PatientLastName) D B ReadmitPatientList .Where ( => .PatientLastName.StartsWith ("cooper")) .OrderBy (rpl => rpl.PatientLastName) 我无法发布结果…但EF返回同一记录的三行. DB返回3行单独记录.和我的sql查询一样. 我需要更改我的EF LINQ才能使其正常工作? EF Linq查询生成的sql代码如果在SQL Explorer中运行,则实际返回正确的结果. 解决方法如果Patient实体没有主键,或者推断为主键的列在结果集中的多个记录中相同,则会发生这种情况. EF使用内部身份映射,该映射要求每个唯一标识的记录必须重用相同的实体实例.因此,如果从数据库返回三个具有相同EF唯一标识的记录,则返回表示结果集中第一个记录的三个相同实例的枚举(更多关于身份映射也是 here). Linq-to-sql的DataContext中也有相同的行为.(编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SqlServer2012中First_Value函数简单分析
- 对于teradata数据库,Hibernate @formula不支持将Cast()作为
- SQL Server 2005基础知识详细整理
- sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接
- sql – 根据来自另一个数据库的查询结果查询数据库
- sql 判断函数、存储过程是否存在的代码整理
- sqlserver 千万数量级分页存储过程代码
- sql-server – Visual Studio SSDT数据比较如何比较单个数据
- 如何编写数字的SQL约束以使其落在某个范围内?
- sql-server – 如何使用MSSQL,重建所有表上的所有索引? MS