我在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