Hubungan Rangka Kerja Entiti 1:1: Mentakrifkan Tujuan Utama
Dalam perhubungan satu dengan satu Rangka Kerja Entiti, mengenal pasti dengan betul entiti utama dan bergantung adalah penting untuk integriti pangkalan data. Entiti utama wujud secara bebas dan dimasukkan dahulu; entiti tanggungan bergantung pada prinsipal dan merujuknya. Kegagalan untuk menentukan hujung utama membawa kepada ralat seperti yang ditunjukkan dalam contoh, yang mana Rangka Kerja Entiti tidak dapat menentukan susunan sisipan.
Mengenalpasti Entiti Utama
Entiti utama ialah entiti yang boleh wujud tanpa entiti bergantung. Ia biasanya memegang kunci utama, bertindak sebagai "ibu bapa" dalam perhubungan. Dalam senario di mana entiti 'Boo' merujuk 'Foo' melalui kunci asing, 'Boo' lazimnya ialah entiti bergantung dan 'Foo' ialah prinsipal.
Menentukan Penghujung Prinsipal
Untuk menyelesaikan ralat "penghujung utama tidak ditentukan", gunakan sama ada API Fasih atau anotasi data dalam model Rangka Kerja Entiti anda:
API Fasih:
Pendekatan ini menggunakan kod untuk mentakrifkan perhubungan:
<code class="language-csharp">modelBuilder.Entity<Foo>() .HasOptional(f => f.Boo) .WithRequired(s => s.Foo);</code>
Coretan kod ini menetapkan Foo
sebagai entiti utama. HasOptional
menunjukkan bahawa entiti Foo
mungkin mempunyai entiti Boo
yang berkaitan atau tidak, manakala WithRequired
menentukan entiti Boo
mesti mempunyai entiti Foo
yang berkaitan.
Anotasi Data:
Kaedah ini menggunakan atribut dalam kelas entiti anda:
<code class="language-csharp">public class Boo { [Key, ForeignKey("Foo")] public string BooId { get; set; } public Foo Foo { get; set; } }</code>
Di sini, atribut ForeignKey
pada BooId
secara eksplisit memautkan Boo
ke Foo
, secara tersirat menjadikan Foo
entiti utama.
Dengan mentakrifkan hujung prinsipal dengan jelas, Rangka Kerja Entiti mengurus susunan sisipan dengan betul dan mengekalkan ketekalan data dalam perhubungan satu dengan satu anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Mentakrifkan Hujung Utama dalam Rangka Kerja Entiti 1:1 Perhubungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!