2017-06-20 6 views
1

Ich habe versucht zu bestimmen, warum meine Lambda-Expression nicht funktioniert. Es sollte CHECK_STATUS_CD überprüfen, um zu sehen, ob es eine "1" oder eine "0" gibt. Wie auch immer, egal welchen Wert es in die if-Anweisung einbringt. Unten ist die if-Anweisung mit dem Ausdruck.Lambda Expression String Vergleich

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); 
     } 
}  

Ich habe versucht, die CHECK_STATUS_CD und die "0" in vielfältiger Weise einschließlich s.CHECK_STATUS_CD.Equals ("0") zu vergleichen; Ich erhalte jedoch das gleiche Ergebnis, wenn ein Wert übergeben wird. Wie sollte ich meinen Lambda-Ausdruck schreiben, so dass, wenn CHECK_STATUS_CD gleich "1" ist, es die if-Anweisung übergibt?

Dank

+0

schwer zu sagen. Was ist eigentlich "CHECKs"? – Rahul

+0

Was passiert, wenn 'CHECKs' Datensätze mit CHECK_STATUS_CD ==" 0 "sowie Datensätze mit CHECK_STATUS_CD ==" 1 "enthält? Wenn Sie Ihre Situation und das gewünschte Ergebnis genau angeben, werden Sie die Lösung wahrscheinlich schnell selbst erkennen ... – elgonzo

+0

CHECKs ist eine Datenbanktabelle. Es enthält Informationen zum Check, einschließlich des Status. Ich werde einen größeren Teil des Codes für den Kontext einbeziehen. –

Antwort

0

Um dies zu lösen, zu prüfen, mit, hatten wir die zweite if-Anweisung zu ändern. Unten ist das gleiche Stück Code mit dem, was wir tun mussten, aktualisiert.

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

Wenn CHECK_STATUS_CD von String-Typ ist es sollte kein Problem sein, aber würde die CHECKs Klasse sehen muß ein besseres Verständnis zu bekommen.

Wenn CHECK_STATUS_CD nicht vom Typ ist string dann könnten Sie wollen .Equals()