0
我從數據庫EF項目創建Codefirst。這是從我生成的數據庫,我無法改變。我已經手動創建了表格之間的大部分關係,但是我已經用桌子撞牆了。如何在複合外鍵中使用NotMapped屬性
有兩個表
T1: FK3
T2: PK1 PK2 PK3
T1之間的關係:FK1 FK2是硬編碼邏輯。 因爲該表T1則FK1 = 「foo」 和FK2 = 「BAR」
我創建
T1
[NotMapped]
FK1 {get {return "FOO"}}
[NotMapped]
FK2 {get {return "BAR"}}
用流利的API映射此
modelBuilder.Entity<T1>
.HasRequired<T2>
.WithMany()
.HasForeignKey(f => new {f.FK1, f.FK2, f.FK3 })
我得到的錯誤:
The foreign key component 'FK1' is not a
declared property on type 'T1'. Verify that it has not been
explicitly excluded from the model and that it is a valid primitive property.
我該如何創建這種關係?我試過DataAnnotations fluentapi似乎無法處理它。
我將不得不使用.computed來修改數據庫是否正確?如果是這樣,我無法改變數據庫。 – EZE
在PS上。我不確定你在說什麼。我有3個外鍵用於該實體。我已經嘗試過對這些數據進行註釋,但是由於這兩個字段是[未映射],所以我仍然有相同的問題。 – EZE
對不起,我忘記了您無法更改數據庫。 'Computed'告訴EF這些值是由數據庫生成的,它不應該觸及它們。如果您不能在數據庫上覆制T1的硬編碼邏輯:FK1 FK2,則此方法無法工作。 –