为了加速我们的测试,我已经将测试切换到使用SQLite :memory:
数据库覆盖数据库文件。一切都很顺利,除了一个警告:它会自动加载实体上的导航属性。SQLite内存数据库渴望加载实体
如果我使用实际的数据库文件运行项目并使用Postman命中它,它不会急于加载它们,并且只在我指定我需要时才加载导航属性.Include()
。
在我切换到测试的SQLite内存数据库之前,它没有这样做。
的的DbContext配置如下:
Configuration.LazyLoadingEnabled = true;
Configuration.ProxyCreationEnabled = false;
Configuration.ValidateOnSaveEnabled = true;
有没有人遇到这个问题?
如果EF以前没有使用.Include()而急切地加载导航属性,那里存在严重错误,它不应该这样做。也许你的意思是懒洋洋地加载导航属性?我不太清楚SQLite如何处理这种情况。 – DevilSuichiro
@DevilSuichiro对不起,这是我的错误,应该说它突然急切地加载,这不是以前。 – Tom
你确定它正在热切加载吗? IQueryable的外观是什么,生成的sql是什么? – DevilSuichiro