LINQ-Äquivalent der ISNULL-Funktion von SQL
Frage:
Wie können Sie das Verhalten nachahmen? der ISNULL-Funktion von SQL in einer LINQ-Abfrage? Betrachten Sie eine Join-Abfrage mit einer nicht nullbaren Spalte (xx.Online vom Typ Bit), die Nullwerte enthalten kann.
Antwort:
Zur Behandlung von nullbaren Werten in LINQ können Sie den bedingten Operator (? :) verwenden, um einen Standardwert anzugeben, wenn das aa-Objekt null ist. Der folgende Code demonstriert dies:
select new { AssetID = x.AssetID, Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool> }
Wenn Sie den Standardwert auf „false“ (statt null) setzen möchten, wenn aa null ist, können Sie diesen Code verwenden:
select new { AssetID = x.AssetID, Status = aa == null ? false : aa.Online; }
Zusätzliche Untersuchung:
Es ist wichtig zu beachten, dass die Verwendung des bedingten Operators mit Nullwerten für nicht nullbare Typen eine explizite Verwendung erfordert Handhabung. Im bereitgestellten Beispiel geben Sie einen Nullable
So vergleicht sich ISNULL mit dem Null-Koaleszenzoperator:
Der Null-Koaleszenzoperator (??) kann nicht direkt zum Ersetzen von ISNULL verwendet werden. Der ?? Der Operator gibt nur dann einen Wert ungleich Null zurück, wenn beide Operanden ungleich Null sind. Daher eignet es sich nicht für die Behandlung von Situationen, in denen ein Operand möglicherweise null ist.
Das obige ist der detaillierte Inhalt vonWie ersetze ich die ISNULL-Funktion von SQL durch LINQ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!