Dalam SQL, fungsi ISNULL menyediakan cara untuk mengendalikan nilai nol dengan menggantikannya dengan penggantian yang ditentukan. Untuk meniru fungsi ini dalam pertanyaan LINQ, pengendali bersyarat nullable ('??') boleh digunakan.
Sebagai contoh, pertimbangkan pertanyaan LINQ berikut dengan lajur boleh nullable (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 };
Untuk mengendalikan kes di mana xx.Online adalah batal, kami boleh menggunakan pengendali bersyarat boleh batal sebagai berikut:
select new { AssetID = x.AssetID, Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool> }
Di sini, kami menyemak sama ada aa adalah batal, dan jika ia, kami menetapkan Status kepada batal, jika tidak, kami menetapkannya kepada nilai aa.Online. Ini memastikan bahawa lajur Status tidak akan mempunyai sebarang nilai yang tidak boleh dibatalkan.
Jika kita ingin menetapkan nilai lalai kepada palsu dan bukannya null, kita boleh menggunakan yang berikut:
select new { AssetID = x.AssetID, Status = aa == null ? false : aa.Online; }
Dengan memasukkan pengendali bersyarat nullable dalam pertanyaan LINQ kami, kami boleh mengendalikan nilai nol dengan berkesan dan memastikan keputusan kami konsisten dan tepat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Fungsi ISNULL SQL untuk Pengendalian Null dalam Pertanyaan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!