2017-06-20 406 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()