我一直试图使用Linq到NHibernate获得不同的值,而且我失败了.
我试过了:
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct();
Run Code Online (Sandbox Code Playgroud)
以及
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct(new RequestorComparer());
Run Code Online (Sandbox Code Playgroud)
RequestorComparer的位置
public class RequestorComparer : IEqualityComparer<Requesters>
{
#region IEqualityComparer<Requesters> Members
bool IEqualityComparer<Requesters>.Equals(Requesters x, Requesters y)
{
//return x.RequestorId.Value.Equals(y.RequestorId.Value);
return ((x.RequestorId == y.RequestorId) && (x.Requestor == y.Requestor));
}
int IEqualityComparer<Requesters>.GetHashCode(Requesters obj)
{
return obj.RequestorId.Value.GetHashCode();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
无论我如何构造语法,它似乎永远不会出现.Distinct()..Distinct()默认情况下,在我查询的表中没有多个重复项,按照195条记录的顺序排列,但应该只返回22个不同的值.
我不确定我做错了什么,但非常感谢可以提供的任何帮助.
谢谢