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