Я впервые начал использовать EF Core с ядром asp.net, и должен признаться, что я не нахожу этот опыт таким хорошим (особенно если вы из NH). Теперь у меня есть следующий сценарий:
- 2 разных DbContexts и каждый контекст использует разные схемы
- API был настроен таким образом, что некоторые операции API были заключены в транзакцию (на практике все было настроено так, что существует единственное соединение sql, которое совместно используется в обоих контекстах)
Я бы хотел протестировать подобные методы, но я не уверен в том, какой подход лучше ... После прочтения документации, похоже, что лучшим вариантом является использование SQLite, но есть небольшой шаг: настройка дБ.
В документах сказано, что я могу использовать метод context.Database.EnsureCreated
. К сожалению, это будет работать только в том случае, если база данных в памяти еще не создана. Другими словами, после вызова if из 1-го экземпляра контекста он не будет ничего делать при вызове через 2-й экземпляр контекста (поскольку оба контекста используют один и тот же БД, и он уже был создан после 1-го вызова). На практике это означает, что я получу частичную базу данных, в которой таблицы будут сопоставлены с сущностями 1-го контекста.
Есть ли способ форсировать создание 2-х контекстных таблиц? Т.е. можно ли написать что-нибудь подобное с EF Core:
contextA.Database.EnsureCreated();
contextB.Database.JustCreateTheTablesPlease();
Или мне нужно пересоздать свою базу данных из сценария SQL перед запуском моих тестов?
Спасибо.