我首先在项目中使用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/

10-10 14:46