如果我在每个Web请求中实例化这样的对象图,那对性能是否有害?
Controller
-> Service
-> UnitOfWork
-> Repository
-> DbContext
如果我有一个单例 Service
, UnitOfWork
和 Repository
以及每个Web请求 DbContext
,我将在第一个Web请求之后访问 DbContext
时遇到 InvalidOperationException's
,因为单例 Repository
保持对 DbContext
的引用在第一次请求结束时处理 . 解决这个问题的唯一方法是让每个类都按照链接's lifestyle ' Per Web Request' .
注意可能有多个服务和存储库,如果采用这种方法,可能会有许多类需要在每个Web请求中实例化 .
像这样创建一个对象图每个Web请求都会成为现代Web服务器的沉重负担吗?我应该采取将DbContext工厂注入我的存储库的方法吗?