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