5
  • 我创建了一个SQL视图,它连接了几个表,并在SQL中进行了测试时,它提供了正确的数据(如果这些都是复杂的联接有所不同)。
  • 在MVC中,我创建了一个(数据优先)实体数据模型,然后添加了代码 一代。
  • 我在一个生成idex页面的控制器中有一个LINQ查询。

所有基本的MVC东西。实体框架查询结果重复

当我运行应用程序时,我收到重复的记录。为了进一步限定条件,如果订单具有多个行,它将返回“订单”中每行的第一条记录。

SQL Results 
Order, Line, Part 
12345, 1, 3829138120 
12345, 2, 1238401890 

MVC/EF Results 
Order, Line 
12345, 1, 3829138120 
12345, 1, 3829138120 

对这个问题的原因有什么想法?

+0

也许发布一些缩小的代码段?特别是LINQ查询。 – Kit

回答

5

您应该仔细检查实体关键属性。我看到您的查询结果,并且您应该标记为主键Order和Line,并且我认为您忘记了标记顺序作为关键字。

+3

感谢您的见解,danihp。 **解决方案**:要解决此问题,我打开实体数据模型(edmx文件)并选择实体集*(SalesOrders)*中的字段_(OrderLine)_属性。打开该字段的属性并将实体关键字值设置为true。 (我还发现许多设置为实体键的字段可能不应该是这样。) – Pete

+0

嗨皮特,一个快乐的结局......或者开始。祝你好运,并感谢解释详细的解决方案。 – danihp