In SQL bietet die ISNULL-Funktion eine Möglichkeit, Nullwerte zu verarbeiten, indem sie durch angegebene Ersetzungen ersetzt werden. Um diese Funktionalität in LINQ-Abfragen zu replizieren, kann der Nullable-Bedingungsoperator ('??') verwendet werden.
Betrachten Sie beispielsweise die folgende LINQ-Abfrage mit einer Nullable-Spalte (xx.Online):
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 };
Um den Fall zu behandeln, in dem xx.Online null ist, können wir den nullbaren Bedingungsoperator wie folgt verwenden:
select new { AssetID = x.AssetID, Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool> }
Hier: Wir prüfen, ob aa null ist, und wenn ja, setzen wir den Status auf null, andernfalls setzen wir ihn auf den Wert von aa.Online. Dadurch wird sichergestellt, dass die Spalte „Status“ keine nicht nullbaren Werte enthält.
Wenn wir den Standardwert auf „false“ statt auf „null“ setzen möchten, können wir Folgendes verwenden:
select new { AssetID = x.AssetID, Status = aa == null ? false : aa.Online; }
Durch die Integration des bedingten Nullable-Operators in unsere LINQ-Abfragen können wir Nullwerte effektiv verarbeiten und sicherstellen, dass unsere Ergebnisse konsistent und genau sind.
Das obige ist der detaillierte Inhalt vonWie kann ich die ISNULL-Funktion von SQL für die Nullbehandlung in LINQ-Abfragen replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!