Ну так в примере
https://docs.microsoft.com/en-us/ef/core/miscellan... , из которого вы код взяли английским же по белому написано
https://docs.microsoft.com/en-us/ef/core/miscellan...
А вы тем не менее у себя именно и настраиваете два поставщика баз в контексте.
Здесь настраиваемся на использование файлового экземпляра:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=dbTest.db", options =>
{
options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName);
});
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlite("Filename=dbTest.db");
}
base.OnConfiguring(optionsBuilder);
}
А в тесте хотим чтобы база разворачивалась в памяти:
var connection = new SqliteConnection("DataSource=:memory:");
connection.Open();
var options = new DbContextOptionsBuilder<MyDbContext>()
.UseSqlite(connection)
.Options;
Исправьте метод OnConfiguring:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlite("Filename=dbTest.db", options =>
{
options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName);
});
}
base.OnConfiguring(optionsBuilder);
}