我正在尝试使用NHibernate的IQueryOver
来模拟主题查询。到目前为止我已经
var q = CurrentSession.QueryOver<ObjectModel.Order>().
WhereRestrictionOn(o => o.Buyer.ID).IsIn(partyIDs).
WhereRestrictionOn(o => o.Seller.ID).IsIn(partyIDs);
然而,这会生成and
个查询,而我需要在两个or
子句之间设置where
运算符。
如何使用IQueryOver
完成此操作?
答案 0 :(得分:9)
通常情况下,在向公众解释问题后不久就会发现问题。谢谢,伙计们!
var q = CurrentSession.QueryOver<ObjectModel.Order>();
q.RootCriteria.Add(Restrictions.Or(
Restrictions.On<ObjectModel.Order>(o => o.Buyer.ID).IsIn(partyIDs),
Restrictions.On<ObjectModel.Order>(o => o.Seller.ID).IsIn(partyIDs)));