Mat*_*ieu 3 c# asp.net-mvc entity-framework dbcontext
在我的最新项目中,我认为在整个应用程序中只有一个上下文可能更简单.我注意到当我加载一个需要多个查询的页面时,它可能会返回空结果.
例如,我有一份约会清单,然后是销售代表清单.他们表现得很好.然后我点击F5,有时一切都会保持良好,但有时约会和/或代表列表将是空的.
这是单个上下文应用程序的已知问题吗?那个设计不好吗?
这是单个上下文应用程序的已知问题吗?那个设计不好吗?
我相信是的,通过简单的Web应用程序,您可能看不出差异,但是对于具有许多用户且需要高容量货币的复杂Web应用程序,问题将是:
DbContext 在内部实现工作单元模式,内部缓存内部,因此长时间保持全局DbContext将导致内存泄漏并从数据库中提取大量数据并暂时将其保留在内存(内部缓存)中.
考虑工作单元是一个业务事务,工作单元中的内部缓存仅用于此事务,而不是全局,如果事务完成,则应尽快处理工作单元.
Web应用程序中DbContext的最佳实践是根据请求保留DbContext的生命周期.如果使用IoC容器,大多数IoC Container都支持每个请求的生命周期管理.
| 归档时间: |
|
| 查看次数: |
1790 次 |
| 最近记录: |