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;
}
我知道,使用标准的API你可以调用DistinctRootEntityResultTransformer()来确保你得到一个唯一的根节点,但是我正在把大部分查询切换到NHibernate LINQ提供程序,并且我没有看到一个方法。
http://nhforge.org/wikis/howtonh/get-unique-results-from-joined-queries.aspx
我遇到同样的问题... – 2009-09-08 18:44:01
如果您将映射从FetchType.Join更改为FetchType.Select,它将解决此问题(只要获得正确的结果)。但就Disctin()调用而言,我怀疑Linq实现中的Distinct()是错误的。 – 2009-09-08 18:49:44
我第二次克里斯关于LINQ Distinct()方法的断言。它无法按照预期的方式工作。希望这将在更高版本中得到纠正。 – 2009-09-08 19:26:45