在一个使用Entity Framework Core和ASP.NET Identity的ASP.NET Core 1.0.1项目中,我有以下上下文:
以下实体:
在启动时,我有以下操作:
当我运行
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"
时,出现以下错误:
如何解决此问题?在启动类'WebProject.Startup'上调用方法'ConfigureServices'时发生错误。考虑使用IDbContextFactory在设计时覆盖DbContext的初始化。 错误:GenericArguments[0],'WebProject.User',在'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4[TUser,TRole,TContext,TKey]'上违反了类型'TUser'的约束。
Context : IdentityDbContext<User, Role, Int32>
,User : IdentityUser<Int32>
和Role : IdentityRole<Int32>
。 - tmg