我正在使用视图来返回复杂的搜索查询。当我使用linq查询EF时,它返回同一行3次(实际的行数是正确的)。LINQ to Entities not returns expected result
使用LinqPad我已经对我的ef实体和实际的数据库视图运行相同的linq。
ReadmitPatientList
.AsQueryable()
.Where("PatientLastName.StartsWith(\"cooper\")")
.OrderBy (rpl => rpl.PatientLastName)
.Dump();
这就是我正在使用的linq。
linqpad显示lambda作为这样的: EF:
ReadmitPatientList.MergeAs (AppendOnly)
.Where (=> .PatientLastName.StartsWith ("cooper"))
.OrderBy (rpl => rpl.PatientLastName)
DB
ReadmitPatientList
.Where (=> .PatientLastName.StartsWith ("cooper"))
.OrderBy (rpl => rpl.PatientLastName)
我不能发布的结果...但EF返回相同记录的三行。数据库返回3行个人记录。正如我的SQL查询。
那么我需要更改EF LINQ以使其正常工作吗?
由如果SQL Explorer中运行的EF Linq查询实际上返回正确的结果生成的SQL代码。
我不知道我明白。 rowcount与3或1一样是否正确?你可以试试.Where(“it.PatientLastName LIKE'cooper%'”)。 – 2011-05-20 20:50:24
rowcount应该是同一个人的3个唯一记录。 (即三次不同的访问),EF查询将返回相同的记录3次。直接db查询返回正确 – ecathell 2011-05-20 22:23:06
@ours我试过这种方式与同样的结果再次EF,它不会对直数据库工作。 – ecathell 2011-05-20 22:36:21