我试图重命名默认FK,但是Code First Migration继续使用不同的名称生成第二个FK到同一个表,弄乱了表模式。
FK模型有一个名为Id的PK,我只想保留客户端所需的约定,更改Id(某事物)的名称。
1)生成的迁移:
2)制图:
我该怎么办?
答案 0 :(得分:0)
如果您的CorpoGestor
实体公开了外键的属性,请使用HasForeignKey
代替Map
和MapKey
。
HasRequired(x => x.Conselho)
.WithMany()
.HasForeignKey(x => x.IdConselho);
另一种解决方案:您可以在属性中使用ForeignKey
属性,而不是映射CorpoGestorMap
类中的关系:
public class CorpoGestor
{
...
public int IdConselho { get; set; }
[ForeignKey("IdConselho")]
public virtual Conselho Conselho { get; set; }
}
警告:在概念上使用实体中的属性并不像在EntityTypeConfiguration
映射类中实现代码那么酷,因为您使用应保存在EF类中的数据层代码来污染您的实体。 / p>