EF Core SqLite в памяти нет такой таблицы? - PullRequest
0 голосов
/ 22 апреля 2020

Я настроил приложение ASP. NET Core 2.2, используя UseInMemoryDatabase (), и оно работало нормально. Теперь я изменил его на реляционный Sqlite в памяти.

Startup.cs

 services.AddDbContext<ApplicationContext>(options => options.UseSqlite("Datasource=file::memory:?cache=shared"));

Я использую этот подход Sqlite в памяти в модульных тестах, и он работает хорошо. Поэтому я решил использовать тот же Sqlite в памяти в своем приложении (чтобы проверить некоторые вещи, позже, когда приложение будет готово, я создам файл sqlite на диске). Проблема в том, когда я запускаю свое приложение. Я получаю ошибки типа SqliteException: SQLite Error 1: 'no such table: USERS'. Я отлаживал свой класс репозитория и обнаружил, что в контексте есть таблица Users. Таким образом, Sqlite in-memory отлично работает в модульных тестах, но в реальном приложении выдает ошибку. Это почему? Спасибо за любые советы.

enter image description here

1 Ответ

0 голосов
/ 23 апреля 2020

Созданы ли вы и применены ли миграции к вашей базе данных SQLite в памяти? Вам придется применять их каждый раз, когда приложение запускается, поскольку база данных существует только в памяти, пока приложение не закроется.

...