Kod Rangka Kerja Entiti Pertama: Melaksanakan Pemadaman Lata dalam Perhubungan Satu-ke-Sifar-atau-Satu
Mengekalkan integriti data dalam Kod Rangka Kerja Entiti Aplikasi Pertama selalunya memerlukan pertimbangan yang teliti terhadap tingkah laku pemadaman berlatarkan, terutamanya apabila berurusan dengan perhubungan satu-ke-sifar-atau-satu. Secara lalai, pemadaman entiti induk menyebabkan entiti anak yang berkaitan tetap utuh, berpotensi melanggar kekangan utama asing.
API yang fasih menawarkan penyelesaian. Katakan kita mempunyai entiti User
dan entiti UserDetail
pilihan, dipautkan melalui kunci utama dan asing. Untuk melaksanakan pemadaman berlatarkan, kami mengubah suai kaedah OnModelCreating
DbContext
kami:
<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<User>() .HasOptional(a => a.UserDetail) .WithOptionalDependent() .WillCascadeOnDelete(true); }</code>
Konfigurasi ini menggunakan HasOptional
, WithOptionalDependent
dan WillCascadeOnDelete(true)
untuk mentakrifkan perhubungan. WithOptionalDependent()
menetapkan bahawa UserDetail
secara pilihan bergantung pada User
dan WillCascadeOnDelete(true)
memastikan pemadaman User
rekod turut memadamkan rekod UserDetail
yang berkaitan.
Dengan persediaan ini, memadamkan entiti User
melalui, sebagai contoh, kelas UserRepository
, akan memadamkan entri UserDetail
yang sepadan secara automatik, menghalang rekod yatim piatu dan mengekalkan konsistensi pangkalan data. Ingat bahawa pemadaman bertingkat harus dilaksanakan dengan bijak dan hanya apabila sejajar dengan logik perniagaan aplikasi anda untuk mengelakkan kehilangan data yang tidak diingini.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pemadaman Bertingkat untuk Perhubungan Satu-ke-Sifar-atau-Satu dalam Kod Rangka Kerja Entiti Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!