Penyata KES LINQ: Pandangan Lebih Dekat
Dalam pertanyaan LINQ, pernyataan CASE menyediakan cara ringkas untuk menilai berbilang keadaan dan mengembalikan nilai yang berbeza berdasarkan keputusan. Memahami cara menggunakan penyata CASE dengan berkesan adalah penting untuk menulis pertanyaan LINQ yang kompleks.
Dalam kes khusus anda, anda cuba menggunakan penyata CASE untuk mengemas kini status stok bagi item daripada "pengeluaran" kepada "tapak perdagangan." Walaupun kod anda memilih item dengan betul dengan bendera pegang tangan ditetapkan kepada "Y" dan stok tersedia, ia tidak melaksanakan pernyataan CASE.
Untuk memasukkan pernyataan CASE dalam LINQ, anda boleh menggunakan operator bersyarat ternary ( ? :), yang membolehkan anda menilai keadaan dan mengembalikan nilai yang berbeza berdasarkan hasilnya. Sintaks untuk operator bersyarat ternary ialah:
condition ? value_if_true : value_if_false
Dalam kes anda, pernyataan CASE boleh dinyatakan dalam LINQ seperti berikut:
cdsDBDataContext db = new cdsDBDataContext(); var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") select new { Items = items, ProductsQuantity = items.ItemQtyOnHand - items.ItemQtyCommitted > 0 ? 100000 : 0 };
Pertanyaan ini mengemas kini sifat "ProductsQuantity" setiap item dalam set keputusan berdasarkan syarat dalam pernyataan CASE. Jika item mempunyai tahap stok tersedia positif, "Kuantiti Produk" ditetapkan kepada 100000; jika tidak, ia ditetapkan kepada 0.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Penyata CASE (atau Setara dengannya) dalam LINQ untuk Mengemas kini Status Stok?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!