我重新实现了会员提供者并希望保留原始数据库方案。我有 2 节课:
class UserProfile
{
public int UserId {get;set} //PK
......
}
class Membership
{
public int UserId {get;set;} //FK to UserProfile.UserId
.........
}
现在我使用 FluentAPI 将 Membership.UserId 作为 FK 附加到 UserProfile.UserId 并且我希望它也是 Membership 表的 PK。
我可以保证 UserProfile.UserId 是数据库生成的身份并且永远不会重复。我尝试了以下代码,但在创建迁移过程中失败并出现错误:
类型中的每个属性名称都必须是唯一的。已定义属性名称“UserId”。
HasKey(k => k.UserId); //Declare it as PK !!!!
Map(m => m.ToTable("webpages_membership")); //Setup table name
HasRequired(t => t.User) //Nav.property to the UserProfile
.WithRequiredDependent(t1 => t1.Membership) //Rev.nav.property from the UserProfile
.Map(m => m.MapKey("UserId")); //FK to the UserProfile !!!!
如果我删除任何用感叹号标记的行,迁移创建得很好,但列名错误。