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

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

DDD
DDD原創
2025-01-21 22:41:11961瀏覽

How Do I Define the Principal End in Entity Framework 1:1 Relationships?

實體架構 1:1 關係:定義主體

在實體框架的一對一關係中,正確識別主體和依賴實體對於資料庫完整性至關重要。 主實體獨立存在,先插入;依賴實體依賴主體並引用它。 未能定義主體會導致像範例中所示的錯誤,其中實體框架無法確定插入順序。

辨識主體

主體實體是沒有依賴實體就可以存在的實體。 它通常保存主鍵,充當關係中的“父級”。 在實體「Boo」透過外鍵引用「Foo」的場景中,「Boo」通常是依賴實體,「Foo」是主體。

指定主端

要解決「未定義主體」錯誤,請在實體框架模型中使用 Fluent API 或資料註解:

流暢的 API:

這種方法使用程式碼定義關係式:

<code class="language-csharp">modelBuilder.Entity<Foo>()
    .HasOptional(f => f.Boo)
    .WithRequired(s => s.Foo);</code>

此程式碼片段指定 Foo 為主體實體。 HasOptional 表示 Foo 實體可能有也可能沒有關聯的 Boo 實體,而 WithRequired 指定 Boo 實體必須 有關聯的 Foo 實體。

資料註解:

此方法使用實體類別中的屬性:

<code class="language-csharp">public class Boo
{
    [Key, ForeignKey("Foo")]
    public string BooId { get; set; }
    public Foo Foo { get; set; }
}</code>

這裡,ForeignKey 上的 BooId 屬性明確地將 Boo 連結到 Foo,隱式地使 Foo 成為主要實體。

透過明確定義主體,實體框架可以正確管理插入順序並保持一對一關係中的資料一致性。

以上是如何定義實體架構 1:1 關係中的主體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn