C# 构造函数中GetDbContext时System.ArgumentNullException异常

C# 构造函数中GetDbContext时System.ArgumentNullException异常,c#,constructor,entity-framework-core,aspnetboilerplate,provider-model,C#,Constructor,Entity Framework Core,Aspnetboilerplate,Provider Model,我试图将实体框架核心与ASP.NET样板文件.NET核心一起使用,但我不想使用存储库内置函数 我的数据库上下文有问题;它不断返回: System.ArgumentNullException:'值不能为null。' 对于DbContext实例,如下所示: public class MainProjectsAppService : ApplicationService { private readonly DecentralizationDbContext _ctx; public

我试图将实体框架核心与ASP.NET样板文件.NET核心一起使用,但我不想使用存储库内置函数

我的数据库上下文有问题;它不断返回:

System.ArgumentNullException:'值不能为null。'

对于
DbContext
实例,如下所示:

public class MainProjectsAppService : ApplicationService
{
    private readonly DecentralizationDbContext _ctx;

    public MainProjectsAppService(IDbContextProvider<DecentralizationDbContext> dbContextProvider)
    {
        _ctx = dbContextProvider.GetDbContext();
    }

    public void CustomizedCreateMainProject(MainProject mainProject)
    {
        MainProject customizedMainProject = new MainProject
        {
            ...
        };

        _ctx.MainProjects.Add(customizedMainProject);
        _ctx.SaveChanges();
    }
}

不要在构造函数中调用
dbContextProvider.GetDbContext()

改为定义一个getter:

公共类MainProjectsAppService:ApplicationService
{
私有只读IDbContextProvider_dbContextProvider;
私有DecentralizationDbContext _ctx=>_dbContextProvider.GetDbContext();
公共主项目服务(IDbContextProvider dbContextProvider)
{
_dbContextProvider=dbContextProvider;
}
}
参考:

namespace Decentralization.EntityFrameworkCore
{
    public class DecentralizationDbContext : AbpZeroDbContext<Tenant, Role, User, DecentralizationDbContext>
    {
        /* Define a DbSet for each entity of the application */

        public DbSet<MainProject> MainProjects { get; set; }
        public DecentralizationDbContext(DbContextOptions<DecentralizationDbContext> options)
            : base(options)
        {
        }
    }
}