Nullable-Werte in LINQ-Abfragen
In SQL ermöglicht die ISNULL-Funktion das Ersetzen einer leeren Zeichenfolge durch Nullwerte. Bei der Übersetzung dieser Funktionalität in LINQ-Abfragen kann ein ähnlicher Ansatz gewählt werden.
Betrachten Sie diese LINQ-Abfrage, die einen Join mit einer Nullable-Bit-Spalte namens xx.Online enthält:
var hht = from x in db.HandheldAssets join a in db.HandheldDevInfos on x.AssetID equals a.DevName into DevInfo from aa in DevInfo.DefaultIfEmpty() select new { AssetID = x.AssetID, Status = xx.Online };
Zum Konto Für potenzielle Nullwerte in aa.Online kann ein nullbedingter Operator verwendet werden:
select new { AssetID = x.AssetID, Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool> }
Diese Prüfung stellt sicher, dass aa vorher nicht null ist Zugriff auf seine Online-Eigenschaft. Wenn aa null ist, ist das Ergebnis ein boolescher Nullwert.
Eine andere Option besteht darin, Nullwerten einen Standardwert (z. B. false) zuzuweisen:
select new { AssetID = x.AssetID, Status = aa == null ? false : aa.Online; }
In diesem Szenario Nullwerte werden durch den angegebenen Standardwert ersetzt.
Durch die Verwendung dieser Techniken ist es möglich, Nullwerte in LINQ-Abfragen ähnlich zu behandeln, wie ISNULL verwendet wird in SQL.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Nullable-Werten in LINQ-Abfragen wie ISNULL von SQL um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!