考虑在设计时使用IDbContextFactory来覆盖DbContext的初始化

本文关键字:IDbContextFactory 覆盖 DbContext 初始化 | 更新日期: 2023-09-27 18:07:31

. NET Core 1.0.1项目,使用实体框架Core和ASP。. NET身份,我有以下上下文:

public class Context : IdentityDbContext<User, Role, Int32, UserClaim, UserRole, UserLogin, RoleClaim, UserToken> { 
  public Context(DbContextOptions options) : base(options) { }
  protected override void OnModelCreating(ModelBuilder builder) {
   base.OnModelCreating(builder);
  }
}

和以下实体:

public class User : IdentityUser<Int32, UserClaim, UserRole, UserLogin> { }
public class Role : IdentityRole<Int32, UserRole, RoleClaim> { }
public class RoleClaim : IdentityRoleClaim<Int32> { }
public class UserClaim : IdentityUserClaim<Int32> { }
public class UserLogin : IdentityUserLogin<Int32> { }
public class UserRole : IdentityUserRole<Int32> { }
public class UserToken : IdentityUserToken<Int32> { }

在启动我有以下:

services.AddDbContext<Context>(x => x.UseSqlServer(connectionString, y => y.MigrationsHistoryTable("__Migrations")));
services
  .AddIdentity<User, Role>()
  .AddEntityFrameworkStores<Context, Int32>()
  .AddDefaultTokenProviders();

当我运行dotnet ef migrations add "FirstMigration"时,我得到以下错误:

在启动时调用'ConfigureServices'方法时发生错误类"WebProject.Startup"。考虑使用IDbContextFactory来在设计时覆盖DbContext的初始化。错误:GenericArguments[0],"WebProject。用户',"Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore"4[摘要、TRole TContext, TKey)"违反了类型'TUser'的约束。

如何解决这个问题?

考虑在设计时使用IDbContextFactory来覆盖DbContext的初始化

我很抱歉发表了部分答案,但它将对许多人有用。

在启动类上调用'ConfigureServices'方法时发生错误

你的方法Startup.ConfigureServices(...)正在被调用,它正在抛出一个异常。异常可能是因为在运行dotnet ef时,应用程序入口点不是像往常一样的Program.Main()

    dotnet ef migrations add "FirstMigration" --verbose 

这将打印错误信息,您将能够更好地理解问题。

相关文章:
  • 没有找到相关文章