Rangka Kerja Entiti
: vs SaveChanges()
dan SaveChanges(false)
dalam urus niaga AcceptAllChanges()
biasanya mengendalikan operasi transaksi dengan berkesan. Walau bagaimanapun, situasi wujud di mana menggunakan SaveChanges()
bersamaan dengan SaveChanges(false)
menyediakan kawalan dan daya tahan yang unggul. AcceptAllChanges()
adalah: TransactionScope
<code class="language-csharp">using (TransactionScope scope = new TransactionScope()) { // ... context1.SaveChanges(); context2.SaveChanges(); // ... }</code>
gagal, keseluruhan transaksi bergulir kembali. Secara kritis, EF membuang perubahan yang dibuat oleh context2.SaveChanges()
, menghalang analisis kegagalan dan pemulihan. context1
dan SaveChanges(false)
: AcceptAllChanges()
<code class="language-csharp">using (TransactionScope scope = new TransactionScope()) { // ... context1.SaveChanges(false); context2.SaveChanges(false); // ... if (scope.Complete()) { context1.AcceptAllChanges(); context2.AcceptAllChanges(); } }</code>
Mengemukakan arahan pangkalan data tanpa membuang perubahan dalam konteksnya. Ini membolehkan pengambilan semula atau pembalakan terperinci jika kegagalan berlaku. SaveChanges(false)
Secara ringkasnya, sementara
cukup untuk kebanyakan keperluan transaksional dalam EF, gabungan dan SaveChanges()
menawarkan pendekatan yang lebih mantap dan fleksibel untuk mengendalikan transaksi yang diedarkan dan menangani kes kelebihan tertentu seperti konflik lajur identiti dan konflik identiti dan dan konflik identiti dan konflik identiti dan Pemulihan kegagalan.
Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan SaveChanges(false) dan AcceptAllChanges() Daripada SaveChanges() dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!