Ich habe versucht, verschiedene Werte mit Linq zu NHibernate zu bekommen, und ich versage kläglich.Wie kann ich bestimmte Werte mit Linq zu NHibernate erhalten?
Ich habe versucht:
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct();
Neben
var query = from requesters in _session.Linq<Requesters>()
orderby requesters.Requestor ascending
select requesters;
return query.Distinct(new RequestorComparer());
Wo RequestorComparer ist
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
}
Egal wie ich die Syntax strukturieren, wie es scheint nie zu schlagen .Distinct()
. Ohne .Distinct()
gibt es standardmäßig mehrere Duplikate in der Tabelle, die ich abfrage, in der Reihenfolge von 195 Gesamtsätzen, aber es sollten nur 22 verschiedene Werte zurückgegeben werden.
Ich bin mir nicht sicher, was ich falsch mache, aber würde jede Hilfe schätzen, die zur Verfügung gestellt werden kann.
Dank
Welche SQL sind diese linq Abfragen generieren? –
Warum melden Sie es nicht als Fehler? – Paco