Tôi đã cố gắng để có được các giá trị khác biệt bằng cách sử dụng LINQ to NHibernate và tôi thất bại thảm hại.Làm thế nào tôi có thể nhận được các giá trị khác biệt bằng cách sử dụng LINQ to NHibernate?
Tôi đã thử:
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct();
Cũng như
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct(new RequestorComparer());
đâu RequestorComparer là
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
}
Không có vấn đề làm thế nào tôi cấu trúc cú pháp, nó không bao giờ dường như nhấn .Distinct()
. Nếu không có .Distinct()
, có nhiều bản sao theo mặc định trong bảng tôi đang truy vấn, theo thứ tự 195 tổng số bản ghi nhưng sẽ chỉ có 22 giá trị khác biệt được trả về.
Tôi không chắc mình đang làm gì sai nhưng sẽ đánh giá rất cao bất kỳ hỗ trợ nào có thể được cung cấp.
Cảm ơn
sql là những truy vấn nào tạo ra? –
Tại sao bạn không báo cáo đó là lỗi? – Paco