ホームページ > データベース > mysql チュートリアル > SQLのISNULL関数をLINQに置き換えるにはどうすればよいですか?

SQLのISNULL関数をLINQに置き換えるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 16:59:11
オリジナル
827 人が閲覧しました

How to Replace SQL's ISNULL Function with LINQ?

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 を返しています。最初のコード ブロックでは、null 値と false 値の両方が許可されます。対照的に、2 番目のコード ブロックは bool を返すため、aa が null の場合は null を明示的に false に割り当てる必要があります。

ISNULL と Null 合体演算子との比較:

null 合体演算子 (??) を直接使用して ISNULL を置き換えることはできません。 ??演算子は、両方のオペランドが null でない場合にのみ、null 以外の値を返します。したがって、1 つのオペランドが null になる可能性がある状況の処理には適していません。

以上がSQLのISNULL関数をLINQに置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート