C# SQL查询返回双重数据
为什么结果列表多次包含相同的数据?我如何防止?我无法使用select distinct id,因为我需要所有列 不要这样做,真正的问题似乎是在映射中,应用这一点,你很可能隐藏了一些非常糟糕的东西,比如不需要的右连接或交叉连接。简单的include不应该带来重复的记录,所以它一定是映射出了问题。甚至可能试图以错误的方式接触双方。 出于好奇,这是映射以下内容的数据库吗C# SQL查询返回双重数据,c#,sql,duplicates,C#,Sql,Duplicates,为什么结果列表多次包含相同的数据?我如何防止?我无法使用select distinct id,因为我需要所有列 不要这样做,真正的问题似乎是在映射中,应用这一点,你很可能隐藏了一些非常糟糕的东西,比如不需要的右连接或交叉连接。简单的include不应该带来重复的记录,所以它一定是映射出了问题。甚至可能试图以错误的方式接触双方。 出于好奇,这是映射以下内容的数据库吗 var result = Context.ItemSet .OrderBy(o => o.Index) .Include(t
var result = Context.ItemSet
.OrderBy(o => o.Index)
.Include(t => t.Group)
.Select(t => t.id)
.Distinct()
.ToList();
抱歉,我知道这还不是答案,但它太多了,无法作为注释输入,而且无法真正格式化注释
两组人储存了id为500的物品。更改此选项修复了重复的问题。由于循环引用问题,我在代码的另一点上仍然得到一个无效的OP异常。Id字段实际上是唯一的吗?如果直接对数据库运行查询而不涉及C,会发生什么,它是唯一的,因为当在数据库中运行查询时,如果在数据库中选择*from itemset,其中id=500,它只返回一行id为500的记录。当查询返回多个对象文档时,只有一个@ruilimacaling Single抛出InvalidOperationException,这是一个强有力的指标,表明您的数据源包含Id=500的多个条目。如果在数据库中运行查询返回一条id=500的记录,如您之前所说,那么我只能建议您尝试验证调用ToList时生成的SQL,并手动检查其是否正确。我有Item 1-to-0…1 Group relation和yes,但不包括它也会带来重复项。有了include,它只会带来更多的副本,我们需要看到实际的模型。您确定返回的数据不是数据库中的数据吗?ItemSet似乎是一组项,在这种情况下,我希望看到为几个IdItem显示一个IdItemSet,类似于:IdItemSet、iditem1、10120-set1和item10。
> -0
> 1
> -1
> 11
> -2
> 12
> -3
...
> -30
> 17
> -31
> 206
> -32
> 500 //
> -33
> 500 //duplicate
> -34
> 203
var result = Context.ItemSet
.OrderBy(o => o.Index)
.Include(t => t.Group)
.Select(t => t.id)
.Distinct()
.ToList();
ItemSet <(n)--(m)> Group