Параметры DbContextOptions ядра ASP.net - PullRequest
0 голосов
/ 28 февраля 2019

Я получаю ArgumentNullException: значение не может быть нулевым.Имя параметра: options Я думаю, что из-за моего конструктора по умолчанию я получаю нулевое значение, но если я закомментирую конструктор, то новому экземпляру класса потребуются параметры, которые я не знаю, что передать. 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();
        }

1 Ответ

0 голосов
/ 28 февраля 2019

Вот как вы можете создать DbContextOptions:

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

, тогда DbContextOptions<DatabaseContext> будет доступно как optionsBuilder.Options.Вы можете передать его OvertimeRequestBusiness.ctor:

new OvertimeRequestBusiness(optionsBuilder.Options);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...