2
我用這QueryOver編寫查詢的排序網格:NHibernate的QueryOver加入到集合兩次
IQueryOver<Order, Order> query = session.QueryOver(() => _OrderAlias);
query.Left.JoinQueryOver(() => _OrderAlias.Employees,() => _OrderEmployeeAssigneeAlias,
() => _OrderEmployeeAssigneeAlias.OrderEmployeeType == OrderEmployeeType.Assignee);
query.Left.JoinQueryOver(() => _OrderAlias.Employees,() => _OrderEmployeeSalespersonAlias,
() => _OrderEmployeeSalespersonAlias.OrderEmployeeType == OrderEmployeeType.SalesPerson);
query.OrderBy(() => _OrderEmployeeSalespersonAlias.LastName).Desc;
有條件,查詢將建成由受讓人通過 銷售人員進行排序,而不是,所以這是多個連接到相同的 表的原因。
運行該查詢產生此異常:
NHibernate.QueryException: duplicate association path: Employees --->
System.ArgumentException: An item with the same key has already been
added.
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue
value, Boolean add)
at NHibernate.Util.LinkedHashMap`2.Add(TKey key, TValue value)
at
NHibernate.Loader.Criteria.CriteriaQueryTranslator.CreateAssociationPathCri teriaMap()
我已經看到了關於與HQL做這個職位,而不是目前的標準API所支持的少數說這 。
這是正確的嗎? HQL是加入收藏兩次的唯一方式嗎?
我可以使用QueryOver做到這一點嗎? (另外,有沒有更好的方法來做 比使用兩個連接?)
在此先感謝。
您好, 我貼我的其他線程有同樣的問題answear你可以去看看,如果你仍然有這個問題 [鏈接](http://stackoverflow.com/questions/8118863/nhibernate-multiple-join -to最相同表按不同的密鑰/ 10104467#10104467) – Mariusz