Kod Rangka Kerja Entiti Didahulukan: Lantunan Pemadaman dalam Perhubungan Satu-ke-Sifar-atau-Satu
Dalam Kod Rangka Kerja Entiti Pertama, mengurus perhubungan satu-ke-sifar-atau-satu memerlukan pertimbangan yang teliti terhadap pemadaman bertingkat. Ini memastikan entiti bergantung dialih keluar secara automatik apabila entiti induk yang berkaitan dipadamkan.
Mari kita menggambarkan dengan senario 'User' dan 'UserDetail'. 'Pengguna' mungkin mempunyai rekod 'UserDetail' atau tidak. Tanpa konfigurasi yang betul, pemadaman 'Pengguna' meninggalkan rekod 'UserDetail' yang berkaitan menjadi yatim.
Penyelesaian terletak pada penggunaan API fasih dalam kaedah OnModelCreating
kelas DbContext anda:
<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<User>() .HasOptional(a => a.UserDetail) .WithOptionalDependent() .WillCascadeOnDelete(true); }</code>
Coretan kod ini mewujudkan perhubungan satu-ke-sifar-atau-satu menggunakan HasOptional
dan WithOptionalDependent
. Yang penting, WillCascadeOnDelete(true)
mengaktifkan pemadaman bertingkat. Sekarang, pemadaman 'Pengguna' akan mengalih keluar masukan 'UserDetail' yang sepadan secara automatik, mengekalkan integriti data. Ini memudahkan kaedah Delete
dalam UserRepository
anda, memastikan kedua-dua rekod dialih keluar dalam satu operasi.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Cascade Delete untuk Hubungan Satu-dengan-Sifar-atau-Satu dalam Kod Rangka Kerja Entiti Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!