Restrictions.Disjunction()在条件和条件之间b或条件c和条件d之间

Chr*_*way 1 nhibernate detachedcriteria

如何在NHibernate中创建一个可以完成以下sql的析取:

从MyTable
中选择*Where(conditionA = true AND conditionB = true)
OR(conditionC = true AND conditionD = true)

从我所看到的,Disjuntion()采用单一标准并将它们"或"组合在一起.是否可以将标准组合在一起并将其与另一对标准"或"对应?

我希望这个问题足够清楚.

谢谢!

sir*_*cco 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))
 );
                                                                )
Run Code Online (Sandbox Code Playgroud)