首頁 > 後端開發 > C++ > 如何定義實體框架1:1關係中的主體?

如何定義實體框架1:1關係中的主體?

Susan Sarandon
發布: 2025-01-21 22:36:11
原創
901 人瀏覽過

How to Define the Principal End in Entity Framework's 1:1 Relationships?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板