实体类型'Microsoft.AspNetCore.Identity.EntityFrameworkCore.I

本文关键字:AspNetCore Identity EntityFrameworkCore Microsoft 类型 实体 | 更新日期: 2023-09-27 18:05:46

一切都很顺利,直到我引入Identity。

我将我的上下文类改为:

public partial class VisualJobsDbContext : IdentityDbContext<ApplicationUser>
{
    private IConfigurationRoot _config;
    public VisualJobsDbContext() { }
    public VisualJobsDbContext(IConfigurationRoot config, DbContextOptions options) : base(options)
    {
        _config = config;
    }...

和我有一个通用存储库,声明形式为:

public abstract class GenericRepository<C,T> : IGenericRepository<T> where T : class where C : IdentityDbContext<ApplicationUser>, new() 
{
    private C _entities = new C();
    private VisualJobsDbContext context;
    private DbSet<T> dbSet;
    public GenericRepository(VisualJobsDbContext context)
    {
        this.context = context;
        this.dbSet = context.Set<T>();
    }....

错误发生在

。>();

第一次被击中。我的OnModelCreating方法被调用了。我试图从我的MVC应用程序得到的页面不需要登录,因为它是一个一般的页面,但会有需要登录的区域。然而,我没有得到远到我的控制器构造方法之前,它的错误。要注册服务,我有:

services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<VisualJobsDbContext>()
            .AddDefaultTokenProviders();

,我可以步进这个

你知道我错过了什么吗?我看过这个stackoverflow答案和其他答案,但它没有真正帮助

实体类型'Microsoft.AspNetCore.Identity.EntityFrameworkCore.I

在我的OnModelCreating方法。我需要将base.OnModelCreating(modelBuilder);作为我的第一行代码。