我在同一个解决方案中有四个 VS 项目,其架构如下:
Admin
和User
项目共享相同的层Service
/Repository
但每个层都有自己的服务器(user.domain.com
和admin.domain.com
),因此它们位于不同的 IIS 池中。
我单独发布它们,但是,当我在管理中进行一些更改时,由于实体框架缓存,它不会对最终用户的应用程序产生任何影响。我的存储库使用静态上下文,我不能丢失实体更改,因此我无法将其转换为本地上下文。
我在用户的应用程序中试过这个:
foreach (var entity in _context.ChangeTracker.Entries())
{
entity.Reload();
}
工作,但应用程序变得太慢。
在两个不同的应用程序中使用相同的 EF 层是否有识别数据库更改的好方法?
或者禁用 onlyUser
的应用程序缓存..
我正在使用 EF6 和 .NET 4.6.1
谢谢
我的存储库使用静态上下文
不要那样做。上下文应该是瞬态的,或范围为 HTTP 请求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句