Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实体框架中的结果与LINQ到SQL不同_Sql_Linq_Entities - Fatal编程技术网

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

实体框架中的结果与LINQ到SQL不同,sql,linq,entities,Sql,Linq,Entities,我首先在项目中使用LINQ to SQL,并使用了以下语句: var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails .Where(p => p.ProjectID == ProjectID); 它正确地从view ProjectRouteEmails返回了三封不同的电子邮件。从电子邮件表返回的ID分别为117、591和610 我改为LINQtoEntities,并使用相同的视图和相同

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

var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
            .Where(p => p.ProjectID == ProjectID);
它正确地从view ProjectRouteEmails返回了三封不同的电子邮件。从电子邮件表返回的ID分别为117、591和610

我改为LINQtoEntities,并使用相同的视图和相同的LINQ语句,但尽管我返回了三条记录,但返回三次的却是第一条记录ID117

我试着这样写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的实体键设置正确。有时,当您将视图导入模型时,实体键会出错。

我会仔细检查您是如何迭代此项以输出的。。。听起来我只是把它绑定到一个网格上。另外,我有一个断点集,在观察窗口中检查它会显示相同的结果。有趣的是…你能提供详细信息吗?它在实体对象中吗?或者…一些关系元数据?有些人可能会使用这些工具来创建实体数据模型,而不必深入细节。就是这样!!!!谢谢你,阿杜奇!它似乎任意选择了一个文本字段作为实体键。我把它改为正确的字段,它就可以工作了。非常感谢。仅供他人日后参考。打开edmx,然后右键单击该字段并添加实体键。