ASP.NET Core 2.1 - IdentityUser 问题 - 无法为

我已将代码从 ASP.NET Core 2.0 升级到 Core 2.1。我创建了一个新的 Core 2.1 项目并将我的代码移动到新项目中。我提供了我的初创公司的样本和ApplicationDbContext


尝试登录时出现以下错误


无法为“IdentityUser”创建 DbSet,因为此类型未包含在上下文的模型中。Microsoft.EntityFrameworkCore.Internal.InternalDbSet.get_EntityType()


启动文件


//Core 2.1

  services.AddDefaultIdentity<IdentityUser>()

            .AddEntityFrameworkStores<ApplicationDbContext>()

            .AddDefaultTokenProviders();            


////Old Core 2.0 Code

  //services.AddIdentity<ApplicationUser, IdentityRole>()

        //    .AddEntityFrameworkStores<ApplicationDbContext>()

        //    .AddDefaultTokenProviders();

应用程序数据库上下文.cs


public partial class ApplicationDbContext : 

    IdentityDbContext<ApplicationUser>

{

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> 

 options)

        : base(options)

    {

        Database.EnsureCreated();

     }

 }


HUWWW
浏览 237回答 3
3回答

慕仙森

尝试更改public partial class ApplicationDbContext : IdentityDbContext<ApplicationUser>为public partial class ApplicationDbContext : IdentityDbContext<IdentityUser>编译器将使用提供给泛型类的类型生成DbSetIdentityDbContext<TUser>。

喵喔喔

从您的 startup.cs 更改services.AddDefaultIdentity<IdentityUser>()到services.AddDefaultIdentity<ApplicationUser>()

守着一只汪

作为跟进:为了避免下一个可能的问题,一旦这里得到修复:您还必须更改 Views\Shared_LoginPartial.cshtml从@inject SignInManager<IdentityUser> SignInManager@inject UserManager<IdentityUser> UserManager到@inject SignInManager<ApplicationUser> SignInManager@inject UserManager<ApplicationUser> UserManager
打开App,查看更多内容
随时随地看视频慕课网APP