哪里......在......或者哪里......在...中使用NHibernate IQueryOver

时间:2011-05-16 15:27:11

标签: nhibernate queryover

我正在尝试使用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完成此操作?

1 个答案:

答案 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)));