How can I get various values ​​using Linq for NHibernate?

I am trying to get different values ​​using Linq for NHibernate, and I fail.

I tried:

var query = from requesters in _session.Linq<Requesters>() orderby requesters.Requestor ascending select requesters; return query.Distinct(); 

Like

 var query = from requesters in _session.Linq<Requesters>() orderby requesters.Requestor ascending select requesters; return query.Distinct(new RequestorComparer()); 

Where is 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 } 

No matter how I structure the syntax, it never ends up in .Distinct() . Without .Distinct() by default in the table, I request several duplicates in the order of 195 shared records, but there should only be 22 different values.

I'm not sure what I'm doing wrong, but I would really appreciate any help that could be provided.

thanks

+6
distinct nhibernate linq-to-nhibernate
source share
3 answers

I found that the following works (NHibernate v3.3.1).

  var query= (from requesters in _session.Query<Requesters>() orderby requesters.Requestor ascending select requesters.Requestor).Distinct(); 
+1
source share

Try reordering:

 var query = from requesters in _session.Linq<Requesters>() select requesters; return query.Distinct().OrderBy(x=>x.Requestor); 

I saw problems with ordering OrderBy and Distinct.

Let me know if this does not work for you.

+1
source share

Have you tried with the new integrated Linq provider in NH 3.0?

Old is very limited.

0
source share

All Articles