我使用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内存在单元测试中工作正常,但在实际应用中会引发错误。这是为什么?感谢您的提示。
创建迁移并将其应用于内存中的SQLite数据库。您每次应用启动时都必须应用它们,因为数据库仅存在于内存中,直到应用退出为止。