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

问题描述 投票:0回答:1

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

Startup.cs

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

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

enter image description here

sqlite asp.net-core entity-framework-core in-memory-database
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.