簡體   English   中英

EF Code首次外鍵發行

[英]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中定義這種關系而不將ServiceDateFormNumber標記為唯一鍵(在這種情況下,也就沒有理由在PK中使用Type ),但是您絕對不能在SQL Server中定義它。是EF的藍圖。 無論如何,EF當前不支持唯一鍵來形成關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM