如何选择两个布尔值或一个

时间:2015-03-31 19:20:23

标签: c# sql-server linq

我有一个三元运算符,如下所示LINQ查询,如图所示

 var sub = (SubordinationType == 1) ? (true&false) : false;

var query = from vw in dbContext.vw
                            where (vw.office == FieldOffice && vw.SubAgreement == sub)
                            select vw;

这里SubAgreement是数据库中的一个位字段我需要根据ternery选择true和false(0,1)或false(0)我是如何实现的?

请快速提出建议。

3 个答案:

答案 0 :(得分:6)

我想我得到了你的问题。你的逻辑是:

  • 如果Subordination为1,SubAgreement并不重要(真或假)
  • 如果Subordination不是1,则SubAgreement应为false

因此增加了另一个条件:

//..
where (vw.office == FieldOffice && (Subordination == 1 || !vw.SubAgreement)) 

答案 1 :(得分:4)

尝试类似:

var query = from vw in dbContext.vw
            where vw.office == FieldOffice
            select vw;

if (SubordinationType != 1)
{
    query = query.Where(vw => vw.SubAgreement == false);
}

在LINQ中,使用其他子句添加where中的新&&子句非常容易(请注意,只要您希望它们位于&&中,就很容易添加, ||案件要复杂得多!:-))

答案 2 :(得分:3)

SubordinationType1SubAgreementfalse时,您可以创建一个条件:

var query = from vw in dbContext.vw
  where (vw.office == FieldOffice && (SubordinationType == 1 || vw.SubAgreement == false))
  select vw;