我目前有一个带有InstanceContextMode = InstanceContextMode .PerCall
. 我这样做是因为服务方法与实体框架模型交互,并且我读到我应该使用PerCall
而不是Single
. 现在,我想添加一个返回大型数据集的新服务方法。我最初的想法是在服务启动时关闭一个线程,并缓存数据集,这样当调用服务方法时,我就不必访问数据库......我只需返回缓存。但问题是我不能这样做,因为我正在使用PerCall
,所以在实例被销毁后,我的缓存也是如此。
我的问题是,我有哪些缓存选项?我真的需要PerCall
还是可以将其设为单例,但只需确保每次调用的 EF 上下文都是新的?