我首先在我的项目中使用 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 正确设置了实体键。有时,当您将视图导入模型时,实体键会弄乱。