Как я могу получить разные значения с помощью Linq to NHibernate?

Я пытался получить отдельные значения, используя Linq для NHibernate, и у меня ничего не получалось.

Я пробовал:

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

return query.Distinct();

А также

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

return query.Distinct(new RequestorComparer());

Где 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
}

Независимо от того, как я структурирую синтаксис, кажется, он никогда не попадает в .Distinct () . Без .Distinct () по умолчанию в запрашиваемой таблице есть несколько дубликатов, всего порядка 195 записей, но должно быть возвращено только 22 различных значения.

Я не уверен, что делаю неправильно, но был бы очень признателен за любую помощь, которая может быть предоставлена.

Спасибо

6
задан Nate 9 September 2010 в 15:14
поделиться