为了账号安全,请及时绑定邮箱和手机立即绑定

实体框架关键问题

实体框架关键问题

C#
慕后森 2021-08-07 16:33:11
当我尝试登录时出现以下错误: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...

}


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信