8

我正在尝试使用 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

4

1 回答 1

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)));
于 2011-05-16T15:32:44.877 回答