Próbowałem uzyskać różne wartości, używając Linq do NHibernate i nie udało mi się.Jak uzyskać różne wartości za pomocą Linq do NHibernate?
Próbowałem:
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct();
jak również
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct(new RequestorComparer());
Gdzie RequestorComparer jest
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
}
Bez względu na to jak wyglądać struktura składnię, nie wydaje się, aby uderzyć .Distinct()
. Bez .Distinct()
domyślnie istnieje wiele duplikatów w tabeli, której szukam, na podstawie 195 rekordów ogółem, ale powinno być zwróconych tylko 22 różnych wartości.
Nie jestem pewien, co robię źle, ale bardzo doceniam każdą pomoc, która może być dostarczona.
Dzięki
Co sql generują zapytania linq? –
Dlaczego nie zgłosisz tego jako błędu? – Paco