2017-06-20 408 views
1

我一直在试图确定为什么我的lambda表达式不工作。它应该检查CHECK_STATUS_CD以查看是否有“1”或“0”。但是,不管它的价值是否落入if语句。下面是带有表达式的if语句。Lambda表达式字符串比较

using (DocumentEntities dbConnection = new DocumentEntities()) 
{ 
    if (dbConnection.CHECKs.Any(c => c.FUSION_CHECK_ID == fusionCheckID)) 
    { 
      if (dbConnection.CHECKs.Any(s => s.CHECK_STATUS_CD == "0")) 
      { 
       PotentialChecks.Check.Add(check); 
      } 
     } 
     else 
     { 
     PotentialChecks.Check.Add(check); 
     } 
}  

我试图比较CHECK_STATUS_CD,并在多个方面,包括s.CHECK_STATUS_CD.Equals( “0”)中的 “0”;不过,当任何值传递时,我会收到相同的结果。我应该如何编写我的lambda表达式,以便如果CHECK_STATUS_CD等于“1”,它将通过if语句?

感谢

+0

很难说。什么是CHECKs? – Rahul

+0

如果'CHECKs'具有CHECK_STATUS_CD ==“0”的记录以及CHECK_STATUS_CD ==“1”的记录,该怎么办?如果您准确地陈述您的情况和期望的结果,您可能很快就会自己实现解决方案... – elgonzo

+0

CHECKs是一个数据库表。它包含检查信息,包括状态。我将包含更大部分的上下文代码。 –

回答

0

为了解决这个问题,我们不得不修改第二if语句。下面是我们不得不做的更新代码。

using (DocumentEntities dbConnection = new DocumentEntities()) 
{ 
    if (dbConnection.CHECKs.Any(c => c.FUSION_CHECK_ID == fusionCheckID)) 
    { 
     var currentCheck = dbConnection.CHECKs.Where(x => x.FUSION_CHECK_ID 
          == check.CheckID && x.CHECK_STATUS_CD == 
          "0").FirstOrDefault(); 

     if (currentCheck != null) 
     { 
      PotentialChecks.Check.Add(check); 
     } 
     } 
     else 
     { 
      PotentialChecks.Check.Add(check); 
     } 
}  
0

如果CHECK_STATUS_CD字符串类型的存在,不应该是一个问题,但需要看到的CHECKs类来获得更清晰的认识。

如果CHECK_STATUS_CDstring型的没有,那么你可能要考虑使用.Equals()