Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyelesaikan Kekaburan dalam Perhubungan 1:1 Rangka Kerja Entiti dengan Menentukan Penghujung Prinsipal?

Bagaimana untuk Menyelesaikan Kekaburan dalam Perhubungan 1:1 Rangka Kerja Entiti dengan Menentukan Penghujung Prinsipal?

Linda Hamilton
Lepaskan: 2025-01-21 22:52:13
asal
563 orang telah melayarinya

How to Resolve Ambiguity in Entity Framework's 1:1 Relationships by Defining the Principal End?

Rangka Kerja Entiti 1:1 Kepentingan tuan dalam perhubungan

Dalam Rangka Kerja Entiti, hubungan satu dengan satu diwakili oleh dua kelas dan sifat navigasi yang saling eksklusif. Untuk menghapuskan kekaburan, "tuan" mesti dinyatakan. Bahagian utama merujuk kepada bahagian dalam persatuan yang mula-mula memasukkan rekod dan mengekalkan perhubungan.

Ralat yang dihadapi dalam contoh terhasil daripada tidak menyatakan induk. Kod ini mentakrifkan dua kelas, Foo dan Boo, masing-masing mengandungi sifat navigasi yang menghala ke kelas lain, tetapi tidak menyatakan hujung mana yang harus diutamakan.

Takrif terminal utama

Dalam perhubungan satu dengan satu, tuan memiliki perhubungan itu dan menguruskan kekangan utama asing. Ia biasanya merupakan penghujung persatuan yang lebih stabil dan tahan lama. Dalam reka bentuk pangkalan data, bahagian utama biasanya dikenal pasti oleh kunci utama.

Contoh dan penyelesaian

Dalam contoh yang diberikan, kelas Foo ialah induk logik kerana ia tidak bergantung pada kewujudan tika Boo. Sebaliknya, kelas Boo tidak boleh wujud tanpa Foo yang berkaitan.

Untuk menyelesaikan ralat dalam Rangka Kerja Entiti, induk perlu dinyatakan dengan jelas. Ini boleh dicapai melalui anotasi data atau pemetaan yang lancar. Menggunakan anotasi data, ubah suai kelas Boo seperti berikut:

<code>public class Boo
{
    [Key, ForeignKey("Foo")]
    public string BooId{get;set;}
    public Foo Foo{get;set;}
}</code>
Salin selepas log masuk

Sebagai alternatif, gunakan pemetaan fasih:

<code>modelBuilder.Entity<Foo>()
            .HasOptional(f => f.Boo)
            .WithRequired(s => s.Foo);</code>
Salin selepas log masuk

Dengan menyatakan induk, ralat boleh diselesaikan dengan cekap untuk menentukan dan mengurus perhubungan satu dengan satu dalam Rangka Kerja Entiti.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Kekaburan dalam Perhubungan 1:1 Rangka Kerja Entiti dengan Menentukan Penghujung Prinsipal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan