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