我首先在项目中使用LINQ to SQL,并使用以下语句:
var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
.Where(p => p.ProjectID == ProjectID);
从 View ProjectRouteEmails正确返回了三封不同的电子邮件。从“电子邮件”表返回的ID为117、591和610。
我将LINQ更改为Entities,并使用相同的 View 和相同的LINQ语句,但是即使我返回了三个记录,它还是第一个记录(ID 117)被返回了三次。
我试过这样写LINQ语句:
var ProjectRouteEmails = from p in EmailManagerDAL.Context.ProjectRouteEmails
where p.ProjectID == ProjectID
select p;
但这没什么区别;同一条记录返回了三遍。
我进入SQL Server Management Studio并运行了查询:
select * from ProjectRouteEmails (nolock)
where ProjectID = 12
并返回正确的三个唯一记录。
这里发生了什么?
谢谢!
最佳答案
确保在实体数据模型中为ProjectRouteEmails正确设置了实体 key 。有时,当您将 View 导入模型时,实体键会被弄乱。
关于sql - Entity Framework 中的结果与LINQ to SQL中的结果不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5950619/