【发布时间】:2014-08-27 10:42:50
【问题描述】:
我正在做一个自定义比较器来比较 Linq 查询中的两个类,如下所示:
Table<Info> table = context.GetTable<Info>();
bool infoAlreadyExists = table.Contains(info, new MyComparer());
这是我的比较器:
public class MyComparer : IEqualityComparer<Info>
{
#region IEqualityComparer<Info> Member
public bool Equals(Info x, Info y)
{
return x.Content == y.Content;
}
public int GetHashCode(Info obj)
{
return obj.Content.GetHashCode();
}
#endregion
}
问题是我遇到了异常。 [System.NotSupportedException]
异常告诉我发现了不支持的 Contains 运算符重载。我做错了什么还是真的不支持?我在文档中找不到任何内容。
这是我尝试使用 contains 方法的重载定义。
public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource> comparer);
【问题讨论】:
-
您使用的是 Linq-To-Sql 还是 Linq-To-Entities?
-
我正在使用 Linq-To-Sql
标签: c# .net linq linq-to-sql