4

我将 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

4

1 回答 1

2

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

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

Microsoft 论坛上的帖子可能会有所帮助。

于 2009-09-08T20:35:42.553 回答