[英]EF Code First foreign key issue
我正在使用EF Code First映射到現有的DB2數據庫。 這是一對多的關系,不幸的是,我無法輕松創建視圖或更改架構。
父表的架構具有以下鍵:
Type (char(1))
ServiceDate (datetime)
FormNumber (varchar(8))
子表(詳細信息)具有以下鍵
ServiceDate (datetime) (also a foreign key to ServiceDate on the parent table)
FormNumber (varchar(8)) (also a foreign key to ServiceDate on the parent table)
SpecificServiceDate (datetime)
LineNumber (varchar(8))
我想使用流暢的映射來創建關系。 如果我做:
.HasMany(e => e.Details).HasForeignKey(e => new {e.ServiceDate, e.FormNumber});
...我收到一個錯誤消息,說密鑰與主密鑰不匹配。 關於如何設置的想法? 謝謝。
編輯
好的,EF本機不支持此功能。 是否有解決方法來延遲加載數據?
如果有區別的話,這是只讀的。
不幸的是,這是不可能的。 EF中的關系具有與數據庫中相同的規則。 如果父表在主鍵中具有三列,則從屬表在外鍵中必須具有相同的三列。
我不確定是否可以在DB2中定義這種關系而不將ServiceDate
和FormNumber
標記為唯一鍵(在這種情況下,也就沒有理由在PK中使用Type
),但是您絕對不能在SQL Server中定義它。是EF的藍圖。 無論如何,EF當前不支持唯一鍵來形成關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.