实体框架中的结果与 LINQ to SQL 的结果不同



我首先在我的项目中使用 LINQ to SQL,并使用以下语句:

var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
            .Where(p => p.ProjectID == ProjectID);

这正确地从视图 ProjectRouteEmail 返回了三封不同的电子邮件。 从"电子邮件"表返回的 ID 为 117、591 和 610。

我更改为 LINQ to Entities,并使用相同的视图和相同的 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

并返回正确的三个唯一记录。

这是怎么回事?

谢谢!

确保为实体数据模型中的 ProjectRouteEmail 正确设置了实体键。有时,当您将视图导入模型时,实体键会弄乱。

相关内容

  • 没有找到相关文章

最新更新