首页 > 解决方案 > EF Core SqlLite 内存中没有这样的表?

问题描述

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

启动.cs

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

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

在此处输入图像描述

标签: sqliteasp.net-coreentity-framework-corein-memory-database

解决方案


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


推荐阅读