gpt4 book ai didi

asp.net-mvc-5 - Asp.net身份验证错误

转载 作者:行者123 更新时间:2023-12-02 08:07:32 25 4
gpt4 key购买 nike

我想将 IdentityContext 与 mydbcontext 集成,但我遇到了此错误

在模型生成过程中检测到一个或多个验证错误:

Ivdb.Dal.Concrete.EFCodeFirst.IdentityUserLogin: : EntityType“IdentityUserLogin”未定义键。定义此 EntityType 的键。Ivdb.Dal.Concrete.EFCodeFirst.IdentityUserRole: : EntityType 'IdentityUserRole' 没有定义键。定义此 EntityType 的键。IdentityUserLogins:EntityType:EntitySet“IdentityUserLogins”基于没有定义键的类型“IdentityUserLogin”。IdentityUserRoles:EntityType:EntitySet“IdentityUserRoles”基于没有定义键的类型“IdentityUserRole”。

我该如何解决这个问题?

代码:

 public partial class ivdbDb156978Context : IdentityDbContext<ApplicationUser> 
{
static ivdbDb156978Context()
{
Database.SetInitializer<ivdbDb156978Context>(null);
}

public ivdbDb156978Context()
: base("Name=ivdbContext")
{
}


public DbSet<Car> Cars { get; set; }

应用程序用户

    public class ApplicationUser : IdentityUser
{

}

最佳答案

您的代码没有显示这一点,但从您收到的错误来看,我假设您正在重写 OnModelCreating。这就是 IdentityDbContext<ApplicationUser> 的位置配置 Entity Framework 映射。这意味着,如果您想重写 OnModelCreating,您需要调用基类,或者您必须自己进行映射。

所以要么这样:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

// your stuff here
}

或者你进行映射:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);
modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);
modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });
}

关于asp.net-mvc-5 - Asp.net身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com