C# 具有Linq的IEqualityComparer异常(NotSupportedException)
我在做一个自定义比较器来比较Linq查询中的两个类,如下所示: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 但在这种情况下,似乎不需要等式比较器。您只需使用以
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;