我在EF5項目的Code First中使用手動映射實體,並想使用FK作爲複合PK。我在測繪類(不FK)唯一的導航屬性如下提到:沒有關鍵屬性的複合PK
class MyMapping
{
public virtual Mapped1 {get;set;}
public virtual Mapped2 {get;set;}
}
我不想添加像「廉政Mapped1FK」 /「詮釋Mapped2FK」領域,但我怎麼也找不到指定組合鍵在這種情況下。
我認爲它應該是這樣的:
modelBuilder.Entity<MyMapping>()
.HasKey(k => k.Mapped1)
.HasKey(k => k.Mapped2);
或
modelBuilder.Entity<MyMapping>()
.HasKey(k => { k.Mapped1, k.Mapped2});
,但我不知道究竟是什麼權利。
我認爲EF在創建原始屬性的情況下,當我指定,例如,一對一的關係,只有導航屬性?我就是這樣問的。 –
@ AlexG.P .:是的,對於**外鍵屬性**而言是這樣,但對於**(主)鍵屬性**則不適用。如果你的一個外鍵是一個(或一部分)主鍵,同時你不得不在你的模型中公開這個FK作爲原始屬性。你不能單獨使用導航屬性。 – Slauma