Kemas Kini Terus dengan LINQ: Memintas Pernyataan Pilih
Apabila bekerja dengan SQL, kemas kini langsung tanpa pernyataan terpilih boleh dibuat menggunakan syarat. Dengan LINQ, corak biasa melibatkan pemilihan entiti, mengubah suainya dan menyerahkan perubahan.
Walau bagaimanapun, bagaimana jika anda ingin melaksanakan kemas kini langsung menggunakan LINQ dan menangguhkan pelaksanaan? Adakah mungkin untuk mengelak daripada menghantar data kepada pelanggan dan meminta SQL dilaksanakan secara langsung?
Jawapannya ialah ya. LINQ-to-SQL boleh menjana kenyataan kemas kini tanpa memerlukan pernyataan pilih. Ini boleh dicapai dengan melampirkan objek dengan nilai utama pada konteks dan mengubah suai sifatnya.
Contohnya:
Foo foo = new Foo { FooId = fooId }; // create obj and set keys context.Foos.Attach(foo); foo.Name = "test"; context.SubmitChanges();
Dengan menetapkan UpdateCheck="Never" untuk semua sifat dalam Dbml fail, satu kenyataan kemas kini akan dijana tanpa memilih entiti asal terlebih dahulu.
Satu kaveat yang perlu diambil perhatian ialah jika anda ingin menetapkan harta kepada null, anda perlu memulakan objek dengan nilai yang berbeza untuk membolehkan LINQ mengesan perubahan. Sebagai contoh:
Foo foo = new Foo { FooId = fooId, Name = "###" }; ... foo.Name = null;
Selain itu, anda boleh menyemak cap masa semasa kemas kini dengan menetapkan sifat kepada UpdateCheck="Sentiasa" dalam fail Dbml. Ini memastikan bahawa pernyataan kemas kini termasuk syarat berdasarkan nilai cap masa.
Atas ialah kandungan terperinci Bolehkah LINQ Melakukan Kemas Kini SQL Terus Tanpa Penyata Pilihan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!