我在我的项目中首先使用LINQ to SQL并使用以下语句:
var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
.Where(p => p.ProjectID == ProjectID);
Run Code Online (Sandbox Code Playgroud)
这正确地从视图ProjectRouteEmails返回了三个不同的电子邮件.从电子邮件表返回的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;
Run Code Online (Sandbox Code Playgroud)
但没有区别; 同样的记录返回了三次.
我进入SQL Server Management Studio并运行查询:
select * from ProjectRouteEmails (nolock)
where ProjectID = 12
Run Code Online (Sandbox Code Playgroud)
并返回正确的三个唯一记录.
这里发生了什么?
谢谢!
确保为实体数据模型中的ProjectRouteEmails正确设置实体密钥.将视图导入模型时,有时实体键会混乱.