Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Cascade Delete untuk Hubungan Satu-ke-Sifar-atau-Satu dalam Rangka Kerja Entiti?
Pemadaman berperingkat satu kepada sifar atau satu perhubungan dalam Rangka Kerja Entiti
Dalam senario yang saya temui baru-baru ini, hubungan satu kepada sifar atau satu telah diwujudkan antara dua kelas POCO Pengguna dan Butiran Pengguna. Walau bagaimanapun, apabila cuba memadamkan rekod Pengguna, kekangan kunci asing dalam UserDetail menghalang rekod Pengguna daripada dipadamkan kerana kekurangan pemadaman bertingkat.
Untuk menyelesaikan masalah ini, Fluent API mesti digunakan dalam DbContext. Coretan kod berikut harus ditambah:
<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<User>() .HasOptional(a => a.UserDetail) .WithOptionalDependent() .WillCascadeOnDelete(true); }</code>
Perhubungan satu-ke-sifar atau satu antara Pengguna dan Butiran Pengguna diwujudkan menggunakan kaedah HasOptional()
dan WithOptionalDependent()
. Kaedah WillCascadeOnDelete(true)
kemudiannya membolehkan pemadaman berlatarkan untuk perhubungan ini.
Dengan perubahan ini dilaksanakan, pemadaman rekod Pengguna kini secara automatik akan mencetuskan pemadaman rekod UserDetail yang berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Cascade Delete untuk Hubungan Satu-ke-Sifar-atau-Satu dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!