Entity Framework 1:1 關係中的主端定義
什麼是主端?
在 1:1 關係中,必須指定一個實體為主端,另一個實體為從屬端。主端是擁有關係或負責維護關係的實體,而從屬端依賴主實體的存在。
程式碼錯誤分析
你在 Entity Framework 中遇到的錯誤是由於沒有明確定義 Foo 和 Boo 之間關係的主端造成的。 Entity Framework 需要此規格來決定哪個實體的主鍵將用作從屬實體的外鍵。
1:1 關係中的主端和從屬端
在你的程式碼中,Foo 和 Boo 之間的關係是一對一關係。以下是辨識主端的方法:
在你的例子中,Foo 應該是主端,因為它可以獨立於 Boo 實體存在。另一方面,Boo 依賴 Foo,因為它需要將 Foo 主鍵插入資料庫。
設定主端
可以透過兩種方式在 Entity Framework 中配置 1:1 關係的主端:
Fluent Mapping:
<code class="language-csharp">modelBuilder.Entity<Foo>() .HasOptional(f => f.Boo) .WithRequired(s => s.Foo);</code>
資料註解:
<code class="language-csharp">public class Foo { [Key] public string FooId { get; set; } public Boo Boo { get; set; } } public class Boo { [Key, ForeignKey("Foo")] public string BooId { get; set; } public Foo Foo { get; set; } }</code>
透過定義主端,你指定 Foo 擁有該關係,而 Boo 只有在存在對應的 Foo 記錄時才能存在。
以上是如何定義實體框架1:1關係中的主體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!