DbContextOptions参数ASP.net核心

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

我收到ArgumentNullException:值不能为null。参数名称:options我认为这是因为我的默认构造函数我得到null但是如果我注释掉构造函数那么类的新实例需要参数,我不知道该给什么.HELP PLEASE

 public class OvertimeRequestBusiness
    {
        public static OvertimeRequestBusiness Instance { get; } = new OvertimeRequestBusiness();
        private readonly DbContextOptions<DatabaseContext> _contextOptions;
     //default ctor
   public OvertimeRequestBusiness() : base() { }


        public OvertimeRequestBusiness(DbContextOptions<DatabaseContext> contextOptions)
        {
            _contextOptions = contextOptions;
        }
        public async Task<List<User>> GetAllUsersAsync()
        {
            using (var ctx = new DatabaseContext(_contextOptions))
            {
                var query = ctx.Users;
                var res = await query.ToListAsync();
                return res;
            }
        }
    }

在我的控制器中

  [Route("users")]
        [HttpGet]
        public async Task<List<User>> GetAllUsers()
        {
          return await OvertimeRequestBusiness.Instance.GetAllUsersAsync();
        }
c# asp.net-core entity-framework-core
1个回答
1
投票

以下是如何创建DbContextOptions

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlServer("connection_string_here");

然后DbContextOptions<DatabaseContext>将作为optionsBuilder.Options。你可以将它传递给OvertimeRequestBusiness.ctor

new OvertimeRequestBusiness(optionsBuilder.Options);
© www.soinside.com 2019 - 2024. All rights reserved.