1

次のSQLを達成するNHibernateで論理和を作成するにはどうすればよいですか:

Select * from MyTable
Where (conditionA = true AND conditionB = true)
OR (conditionC = true AND conditionD = true)

私が見てきたことから、 Disjuntion() は単一の基準を取り、それらを「OR」します。一緒に基準にグループ化し、それを別の基準のペアに対して「OR」することは可能ですか?

この質問が十分に明確であることを願っています。

ありがとう!

4

2 に答える 2

6

きれいではありませんが、次のように記述します。

.Add(
    Restrictions.Or(
        Restrictions.Conjunction().Add(Restrictions.Eq("columnA", true)).Add(Restrictions.Eq("columnB", true)),
        Restrictions.Conjunction().Add(Restrictions.Eq("columnC", true)).Add(Restrictions.Eq("columnD", true))
 );
                                                                )
于 2009-08-14T03:23:45.580 に答える
2

使用することもできます

.Add(
     Expression.Or(
         Expression.And(Expression.Eq("columnA",true), Expression.Eq("columnB",true)),
         Expression.And(Expression.Eq("columnC",true), Expression.Eq("columnD",true)))
于 2009-08-14T05:23:05.907 に答える