Со вчерашнего дня у меня возникла странная проблема с моим методом заполнения БД, и я не могу понять это.
Я создал класс для заполнения моей БД, зарегистрировал ее для DI и вызвал ее метод заполнения из автозагрузки. Настройка. Внутри я гарантирую, что БД создана, затем я генерирую данные для ее заполнения. Добавление первых нескольких наборов данных работает просто отлично. Однако в какой-то момент мне нужно добавить немного большее количество данных в таблицу (200 строк).
Я создал список для хранения записей и приступил к их добавлению, вызвав await _context.AddRange(List)
, а затем await _context.SaveChangesAsync()
. Выполнение зависает при сохранении. Другие задачи, такие как фоновые, которые я регистрирую, все еще выполняются Также нет исключений. Если я изменю оба исполнения на их синхронные аналоги, это будет работать. Это заставляет меня думать, что у меня тупик. Но так как фоновая служба все еще работает, и я не могу отладить, что происходит в моем методе заполнения, я понятия не имею, может ли это вообще быть тупиком или нет.
Я мог бы просто go опередить и использовать синхронный звонки, но я чувствую, что я что-то здесь упускаю и, скорее всего, снова столкнусь с проблемой. Самое странное, что данные, которые я пытаюсь добавить в таблицу, только начинают замораживать выполнение после того, как я добавлю больше столбцов. Ранее я вызывал await _context.Add(data)
во всех строках и только await _context.SaveChangesAsync()
в конце. На тот момент таблица имела около 15 столбцов. Когда я расширил таблицу до 30 столбцов, эти и вышеупомянутые вызовы больше не работают. Единственным преимуществом для меня может быть увеличение количества данных, которое необходимо добавить, что повышает вероятность зайти в тупик, но в остальном у меня нет идей.