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 };
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> }
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; }
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!