我试图设置一些集成测试以使用Sqlite,但是当我运行测试时,我看到错误提示我各种数据库表不存在。
最初在测试中,我使用的是“ UseInMemoryDatabase”,但似乎不支持使用FromSql
,所以我改用了Sqlite。
这是我配置Dbcontext的方式;
// Create a new service provider.
var serviceProvider = new ServiceCollection()
.AddEntityFrameworkSqlite()
.AddEntityFrameworkProxies()
.BuildServiceProvider();
// Add a database context (AppDbContext) using an in-memory database for testing.
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseLazyLoadingProxies()
.UseSqlite("DataSource=:memory:")
.UseInternalServiceProvider(serviceProvider);
});
在启动时,我试图为数据库添加一些数据。当我使用标准的InMemoryDatabase时,当我在项目中不使用FromSql
方法时,它可以很好地工作,但是当我切换到Sqlite时,它似乎并没有自动创建数据库表。>