Где ... В ... Или Где ... В ... с помощью NHibernate IQueryOver - PullRequest
8 голосов
/ 16 мая 2011

Я пытаюсь эмулировать предметный запрос с помощью IQueryOver в NHibernate.Пока у меня есть

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 Ответ

9 голосов
/ 16 мая 2011

Как обычно, обнаруженный вопрос вскоре после объяснения проблемы широкой публике. Спасибо, ребята!

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)));
...