System.ArgumentNullException:'值不能为null。 + asp.net样板.NET Core

问题描述 投票:0回答:1

我正在尝试将Entity Framework Core与ASP.NET Boilerplate .NET Core一起使用,所以我不想使用Repository内置函数。

但是我的数据库上下文存在问题,它始终返回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();



        }

enter image description here

//和下面是DBContext类代码

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)
        {
        }


    }
}
entity-framework-core aspnetboilerplate asp.net-boilerplate
1个回答
0
投票

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

改为定义吸气剂:

public class MainProjectsAppService : ApplicationService
{
    private readonly IDbContextProvider<DecentralizationDbContext> _dbContextProvider;
    private DecentralizationDbContext _ctx => _dbContextProvider.GetDbContext();

    public MainProjectsAppService(IDbContextProvider<DecentralizationDbContext> dbContextProvider)
    {
        _dbContextProvider = dbContextProvider;
    }
}

参考:aspnetboilerplate/aspnetboilerplate#4809

© www.soinside.com 2019 - 2024. All rights reserved.