Rumah > pangkalan data > tutorial mysql > Bolehkah LINQ Melakukan Kemas Kini SQL Terus Tanpa Penyata Pilihan?

Bolehkah LINQ Melakukan Kemas Kini SQL Terus Tanpa Penyata Pilihan?

DDD
Lepaskan: 2024-12-20 10:31:10
asal
879 orang telah melayarinya

Can LINQ Perform Direct SQL Updates Without Select Statements?

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();
Salin selepas log masuk

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;
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan