Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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# 具有Linq的IEqualityComparer异常(NotSupportedException)_C#_.net_Linq_Linq To Sql - Fatal编程技术网

C# 具有Linq的IEqualityComparer异常(NotSupportedException)

C# 具有Linq的IEqualityComparer异常(NotSupportedException),c#,.net,linq,linq-to-sql,C#,.net,Linq,Linq To Sql,我在做一个自定义比较器来比较Linq查询中的两个类,如下所示: Table<Info> table = context.GetTable<Info>(); bool infoAlreadyExists = table.Contains(info, new MyComparer()); 不支持该版本的Contains方法。您可以在此处查看完整列表: 因此,您需要在内存中执行此操作,您可以使用AsEnumerable 但在这种情况下,似乎不需要等式比较器。您只需使用以

我在做一个自定义比较器来比较Linq查询中的两个类,如下所示:

Table<Info> table = context.GetTable<Info>();
bool infoAlreadyExists = table.Contains(info, new MyComparer());

不支持该版本的
Contains
方法。您可以在此处查看完整列表:

因此,您需要在内存中执行此操作,您可以使用
AsEnumerable

但在这种情况下,似乎不需要等式比较器。您只需使用以下查询即可获得相同的结果:

table.FirstOrDefault(x => x.Content == info.Content) != null;

您使用的是LINQtoSQL还是LINQtoEntities?我使用的是LINQtoSQLIT不清楚他使用的是什么Linq提供程序。但是afaik也
linqtosql
不支持它。这是我现在使用的方法。我只是想知道为什么另一种方法不起作用。感谢您确认它不受支持。
public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource> comparer);
table.FirstOrDefault(x => x.Content == info.Content) != null;