代码之家  ›  专栏  ›  技术社区  ›  Chris Conway

限制条件。条件a和条件b或条件c和条件d之间的析取()

  •  1
  • Chris Conway  · 技术社区  · 15 年前

    从MyTable中选择*
    其中(条件A=true和条件B=true)
    或(条件C=true和条件D=true)

    据我所见,disjunition()采用单一标准,并将它们“OR”在一起。是否可以将标准组合在一起并“或”与另一对标准相对应?

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

    谢谢

    2 回复  |  直到 15 年前
        1
  •  6
  •   sirrocco    15 年前

    虽然不太好看,但你可以这样写:

    .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))
     );
                                                                    )
    
        2
  •  2
  •   johnny    15 年前

    .Add(
         Expression.Or(
             Expression.And(Expression.Eq("columnA",true), Expression.Eq("columnB",true)),
             Expression.And(Expression.Eq("columnC",true), Expression.Eq("columnD",true)))
    
    推荐文章