nHibernate를 사용하여 렌더링해야하는 SQL 쿼리가 있다고 가정 해 보겠습니다. SQL 쿼리의 WHERE 절은 3 개의 또는 문으로 구성되며 각 문에는 조건 목록이 들어 있습니다. 예를 들어 내가 nHibernate 수있는 QueryOver 구문을 사용하여 쿼리의 동일한 유형을 작성하는 방법nHibernate : QueryOver를 사용하는 결합과 분리
var disjunction = Restrictions.Disjunction();
foreach (var tuple in OrdersAndLineItems)
{
var conjunction = Restrictions.Conjunction();
var order = tuple.Item1;
var lineitem = tuple.Item2;
conjunction.Add(Restrictions.Eq("OrderId", order.Id));
conjunction.Add(Restrictions.Eq("LineItemId", lineitem.Id));
disjunction.Add(conjunction);
}
var result = Session.CreateCriteria<SomeClass>().Add(disjunction).ToList();
:
SELECT *
FROM MyTable
WHERE
(OrderId = 1 and ItemId = 100)
OR
(OrderId = 2 and ItemId = 200)
OR
(OrderId = 3 and ItemId = 300)
nHibernate 수의 기준 구문을 사용하여, 나는이를 구현하기 위해 분리를 사용할 수 있습니다 3.x?
이것은 올바르지 않습니다. Equals는 객체에 대한 메소드이며 QueryOver API와는 아무런 관련이 없습니다. –
평등 테스트에 대한 올바른 방법은 내 대답을 참조하십시오. –