Уникальные результаты от объединенных запросов с поставщиком NHibernate LINQ - PullRequest
4 голосов
/ 31 августа 2009

Я использую NHibernate 2.1 с поставщиком LINQ, и у результатов, которые я получаю по этому запросу, есть несколько корневых узлов:

public IList<Country> GetAllCountries()
{
  List<Country> results = (from country in _session.Linq<Country>()
                           from states in country.StateProvinces
                           orderby country.DisplayOrder, states.Description 
                           select country)
                           .Distinct()
                           .ToList();

            return results;
}

Я знаю, что с помощью API Criteria вы можете вызвать DistinctRootEntityResultTransformer (), чтобы убедиться, что вы получаете уникальный корневой узел, но я в процессе переключения большинства моих запросов к поставщику NHibernate LINQ, и я не вижу равных.

http://nhforge.org/wikis/howtonh/get-unique-results-from-joined-queries.aspx

1 Ответ

2 голосов
/ 09 сентября 2009

Используя базу данных NorthWind, я хотел вернуть отдельные регионы из территорий ... Этот синтаксис работал правильно.

(from t in Territories
from r in Regions
select  new
{
    r.RegionDescription
})
.Distinct().OrderBy(r => r.RegionDescription)

На форуме Microsoft есть сообщение здесь , которое может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...