考慮使用IDbContextFactory在設計時覆蓋DbContext的初始化

asp.net-core asp.net-identity-3 c# entity-framework-core

在ASP.NET Core 1.0.1項目上,使用Entity Framework Core和ASP.NET Identity,我有以下上下文:

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'的約束。

如何解決這個問題呢?

熱門答案

我為發布部分答案而道歉但對許多人來說這將是有用的...

在啟動類上調用方法'ConfigureServices'時發生錯誤

正在調用您的方法Startup.ConfigureServices(...) ,它正在拋出異常。異常可能發生,因為運行dotnet ef ,應用程序入口點不像往常一樣是Program.Main()

嘗試

    dotnet ef migrations add "FirstMigration" --verbose 

這將打印錯誤消息,您將能夠更好地理解該問題。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow