C# 构造函数中GetDbContext时System.ArgumentNullException异常
我试图将实体框架核心与ASP.NET样板文件.NET核心一起使用,但我不想使用存储库内置函数 我的数据库上下文有问题;它不断返回: System.ArgumentNullException:'值不能为null。' 对于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
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)
{
}
}
}