当我尝试登录时出现以下错误:Project.Model.Identity.UserLogin:: EntityType 'UserLogin' 没有定义键。定义此 EntityType 的键。UserLogins: EntityType: EntitySet 'UserLogins' 基于未定义键的类型 'UserLogin'。我正在尝试在我的 dbcontext 中使用复合键 // Primary Key this.HasKey(t => new { t.LoginProvider, t.ProviderKey, t.UserId });但它似乎无法找到它,它看起来是在模型中而不是在上下文中搜索键,因为当我在模型中添加“[Key]”关键字时,它抱怨必须使用 HasKey复合键public partial class UserLogin{ [Key] public string LoginProvider { get; set; } [Key] public string ProviderKey { get; set; } [Key] public string UserId { get; set; } public virtual User User { get; set; }}我该如何度过这一关?我是否在模型中添加了 HasKey,如果是,如何添加,为什么它没有在上下文中选择它?
2 回答
慕慕森
TA贡献1856条经验 获得超17个赞
如文档中所述,
当您有复合键时,实体框架要求您定义键属性的顺序。您可以使用 Column 注释来指定顺序。
尝试修改代码如下:
public partial class UserLogin
{
[Key]
[Column(Order=1)]
public string LoginProvider {get; set;}
[Key]
[Column(Order=2)]
public string ProviderKey {get; set; }
// and so on...
}
- 2 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消