0
我有共同的NH映射;NHibernate。獨特的父母提取
<class name="Order, SummaryOrder.Core" table='order'>
<id name="Id" unsaved-value="0" type="int">
<column name="id" not-null="true"/>
<generator class="native"/>
</id>
<many-to-one name="Client" class="SummaryOrderClient, SummaryOrder.Core" column="summary_order_client_id"
cascade="none"/>
<many-to-one name="Provider" class="SummaryOrderClient, SummaryOrder.Core" column="summary_order_provider_id"
cascade="none"/>
<set name="Items" cascade="all">
<key column="order_id"/>
<one-to-many class="OrderItem, Clients.Core" />
</set>
</class>
希望通過這個標準
ICriteria criteria = NHibernateStateLessSession.CreateCriteria(typeof(SummaryOrder.Core.Domains.Order)); ;
criteria.Add(Restrictions.Or
(Restrictions.Eq(String.Format("{0}.Id", SummaryOrder.Core.Domains.Order.Properties.Client), idClient),
Restrictions.Eq(String.Format("{0}.Id", SummaryOrder.Core.Domains.Order.Properties.Provider), idClient))).
SetResultTransformer(new DistinctRootEntityResultTransformer()).
SetFetchMode(SummaryOrder.Core.Domains.Order.Properties.Items, FetchMode.Join);
return criteria.List<SummaryOrder.Core.Domains.Order>() as List<SummaryOrder.Core.Domains.Order>
拿到名單,但我有重複。當我執行一個限制(沒有OR)我的訂單不同集合,但限制或剎車我的查詢。我想弄清楚(在客戶端)訂單的集合。怎麼了。請幫忙!
這hql工作。爲什麼我不能通過標準API獲得這個結果?
select distinct o from Order o left join fetch o.Items where o.Client.Id=1 or o.Provider.Id=1
上面的例子中你的「idClient」是什麼?並且還在限制中。或者您正在使用idClient for Client和Provider屬性,這不是一個錯誤嗎? – VoodooChild 2010-06-01 04:03:19
idClient是Client的id(int)。不,這不是錯誤。我需要這個邏輯。 – 2010-06-01 04:19:30