Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengendalikan Nilai Nullable dalam Pertanyaan LINQ Seperti ISNULL SQL?

Bagaimana untuk Mengendalikan Nilai Nullable dalam Pertanyaan LINQ Seperti ISNULL SQL?

Mary-Kate Olsen
Lepaskan: 2024-12-29 20:55:10
asal
959 orang telah melayarinya

How to Handle Nullable Values in LINQ Queries Like SQL's ISNULL?

Nilai Boleh Null dalam Pertanyaan LINQ

Dalam SQL, fungsi ISNULL membenarkan penggantian rentetan kosong untuk nilai nol. Apabila menterjemahkan fungsi ini kepada pertanyaan LINQ, pendekatan yang serupa boleh diguna pakai.

Pertimbangkan pertanyaan LINQ ini yang menyertakan gabungan dengan lajur bit nullable bernama 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
        };
Salin selepas log masuk

Ke akaun untuk potensi nilai nol dalam aa.Online, pengendali bersyarat nol boleh bekerja:

select new {
    AssetID = x.AssetID,
    Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool>
}
Salin selepas log masuk

Semakan ini memastikan bahawa aa tidak batal sebelum mengakses harta Dalam taliannya. Jika aa adalah nol, hasilnya akan menjadi nilai Boolean null.

Pilihan lain ialah untuk menetapkan nilai lalai (cth., palsu) kepada nilai null:

select new {
    AssetID = x.AssetID,
    Status = aa == null ? false : aa.Online;
}
Salin selepas log masuk

Dalam senario ini, nilai null akan digantikan dengan nilai lalai yang ditentukan.

Dengan menggunakan teknik ini, adalah mungkin untuk mengendalikan nilai nol dalam pertanyaan LINQ sama seperti cara ISNULL digunakan dalam SQL.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Nilai Nullable dalam Pertanyaan LINQ Seperti ISNULL SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan