![]() |
1
30
在我看来,你有一把借来的主键。linq-to-sql和ef的“标识管理”方面意味着,每当它看到相同对象类型的相同主键值时,就必须返回相同的实例。 例如,给定数据:
然后
如果它认为
我建议检查您标记为主键的任何字段(在DBML/EDM模型中)是否每行都是唯一的。在上述情况下,
更新:特别是,在设计器中查看各种属性的“实体键”属性,尤其是在查询视图时。检查“实体键”是否仅对适当的列(即使行唯一的列)设置为true。如果设置不正确,请将其设置为false。这也可以作为黄色的键图标看到-这应该只出现在真正是记录唯一标识符的东西上。 |
![]() |
2
1
如果您将链接查询括在括号中并使用.distinct()扩展名?
|
![]() |
3
0
工作查询和中断查询之间的一个区别是orderby子句。我找到了一个 documented bug 在LINQ to Entities中的orderby实现中…可能还有其他的。 尝试从中断的查询中删除orderby,并查看是否仍有重复项。 另一个区别是WHERE子句中的OR。尝试只使用第一部分[其中dp.lastname.startswith(searchterm)],然后查看是否仍有重复项。 |
![]() |
4
0
我也面临同样的问题,并通过一个变通办法解决了它。我把它贴在这里,因为它可能会帮助其他人来这里。 不要选择dp,而是使用
这不会返回重复项。 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
|
Pavel Foltyn · 如何在C中生成逆字典# 9 月前 |
![]() |
ewok · 基于种子和上一个值创建值列表 1 年前 |
|
Vasu V · 将foreach转换为select语句 1 年前 |
![]() |
Modest · 使用命名空间和文本值序列化xElement 1 年前 |