使用NHibernate LINQ提供程序加入查询的独特结果

时间:2009-08-31 10:43:30

标签: nhibernate nhibernate-mapping linq-to-nhibernate

我正在使用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;
}

我知道使用Criteria API你可以调用DistinctRootEntityResultTransformer()以确保你获得一个唯一的根节点,但我正在将我的大多数查询转换为NHibernate LINQ提供者,我不知道看到一个相等的。

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

1 个答案:

答案 0 :(得分:2)

使用NorthWind数据库,我想从区域中找回不同的区域......这种语法正常工作。

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

微软论坛上有一篇帖子here可能有所帮助。