考虑在设计时使用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'的约束。
如何解决这个问题?
我很抱歉发表了部分答案,但它将对许多人有用。
在启动类上调用'ConfigureServices'方法时发生错误
你的方法Startup.ConfigureServices(...)
正在被调用,它正在抛出一个异常。异常可能是因为在运行dotnet ef
时,应用程序入口点不是像往常一样的Program.Main()
。
试
dotnet ef migrations add "FirstMigration" --verbose
这将打印错误信息,您将能够更好地理解问题。