SQL の ISNULL 関数に相当する LINQ
質問:
動作をエミュレートするにはどうすればよいですかLINQ クエリ内の SQL の ISNULL 関数について教えてください。 null 値を含むことができる null 非許容列 (ビット型の xx.Online) を含む結合クエリを考えてみましょう。
答え:
LINQ で null 許容値を処理するには、aa オブジェクトが null の場合、条件演算子 (? :) を使用してデフォルト値を指定できます。次のコードはこれを示しています:
select new { AssetID = x.AssetID, Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool> }
aa が null のときにデフォルトを (null ではなく) false に設定したい場合は、次のコードを使用できます:
select new { AssetID = x.AssetID, Status = aa == null ? false : aa.Online; }
追加調査:
null 値を持つ条件演算子を使用することに注意することが重要です。 null 非許容型には明示的な処理が必要です。提供された例では、Nullable
ISNULL と Null 合体演算子との比較:
null 合体演算子 (??) を直接使用して ISNULL を置き換えることはできません。 ??演算子は、両方のオペランドが null でない場合にのみ、null 以外の値を返します。したがって、1 つのオペランドが null になる可能性がある状況の処理には適していません。
以上がSQLのISNULL関数をLINQに置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。