[英]How to do a true one-to-one relationship in Entity Framework?
我快到了。 我越接近是 1 到 0..1 的關系。
我的物理模式是:
User:
- Id : int primary Key identity
- Name : varchar(50)
UserDetail:
- Id : int primary Key | foreign key to User.Id
- DisplayName : varchar(200)
當我在實體數據 Model 設計器中導入此架構時,Visual Studio 2010 建議使用 1 到 0..1 的關系。 如果我強制執行 1..1 它接受但結果看起來不像 1..1 關系。
我對 1..1 關系有什么期望?
我希望它:
我怎樣才能做到這一點?
即使在數據庫級別也不支持它,因為真正的 1 對 1 關系意味着您必須具有從User
到UserDetail
的 FK 以及同時從UserDetail
到User
的 FK。 1 比 1 表示如果沒有第二條記錄,一條記錄就不能存在,但是當檢查引用約束時,無法將這些記錄插入表中。
一對一實際上始終是 1 到 0..1,因為您必須能夠在沒有依賴記錄的情況下插入主體記錄,並且一旦主體記錄被持久化,您就可以插入依賴記錄。 EF 與關系數據庫的工作方式密切相關。 我知道純 1 對 1 工作的唯一情況是表拆分,您將 map 到同一個表的實體,因此兩個實體必須始終存在並插入在一起,因為它們形成單個記錄。
如果您想始終將User
和UserDetail
保存在一起,您應該 model 使用實體拆分將它們作為單個實體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.