Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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
C# ';独特的';操作无法应用于指定参数的集合ResultType_C#_Sql_Linq_Entity Framework_Linq To Sql - Fatal编程技术网

C# ';独特的';操作无法应用于指定参数的集合ResultType

C# ';独特的';操作无法应用于指定参数的集合ResultType,c#,sql,linq,entity-framework,linq-to-sql,C#,Sql,Linq,Entity Framework,Linq To Sql,我想知道为什么我不能在stackoverflow上找到这个错误。在LINQtoSQL中,我选择一个匿名对象,如 var something = from a in ..... ...... ...... select new { myParameter = a.Something

我想知道为什么我不能在stackoverflow上找到这个错误。在LINQtoSQL中,我选择一个匿名对象,如

var something = from a in .....
                ......
                ......
               select new { 
                                  myParameter = a.Something 
                                  myListParameter = (from b in ........
                                                    select b)
                          }
.
.
.
.
something = something.Distinct(); //This is giving error

在上面选择匿名类型对象时,我在其中一个属性中选择另一个列表。我想这可能是问题的根源。我想知道是否有解决办法。

可能是因为您的查询返回了多个结果

试用

something = something.Distinct().ToList();
如果适用于您的需求,您可以使用变通方法

something = something.GroupBy(x => x.PropertyToCompare).Select(x => x.First());

无法区分()匿名类型,因为每个对象将保存在不同的内存空间中,因此不可等分


您可能需要实现IEquatable才能使用Distinct(),如下响应:

您会遇到什么错误?但这是Linq to Objects,我知道实现IEquatable可以解决问题,但我不能为匿名类型定义一个IEquatable,或者我能纠正吗?基本上唯一的方法是先分组,然后再分组(),从技术上讲,这不是一个独特的,而是每个组的第一个。如果您在未比较的字段中有不同的数据,那么您的结果将不同。在我的例子中,答案足够可行,我们的表中有主键,我只是将该字段中的数据分组。@TahaRehmanSiddiqui请检查此解决方法是否有助于您。