EF Core SqlLite 内存中没有这样的表?

EF Core SqLite in-memory no such table?

我使用 UseInMemoryDatabase() 配置了我的 ASP.NET Core 2.2 应用程序,它运行良好。现在我将其更改为内存中的关系 Sqlite。

启动.cs

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

我在单元测试中使用这种 Sqlite 内存方法,它运行良好。所以决定我想在我的应用程序中使用相同的内存中 Sqlite(为了测试一些东西,稍后当应用程序准备好时,我将在磁盘上创建 sqlite 文件)。问题是当我启动我的应用程序时。我收到像 SqliteException: SQLite Error 1: 'no such table: USERS' 这样的错误。我调试了我的存储库类,发现上下文有表用户。
因此,内存中的 Sqlite 在单元测试中工作正常,但在实际应用程序中会引发错误。这是为什么?感谢您提供任何提示。

enter

创建并将迁移应用到内存中的 SQLite 数据库。您必须在每次应用程序启动时应用它们,因为数据库只存在于内存中,直到应用程序退出。