尽管IoC似乎是一个要求,但我认为将EF上下文仅用于最底层的持久层是不是一个好的选择。
这样做我经常会找到将IQueriable
数据转换为List<T>
的代码,因为上下文已从Repository函数中关闭,从而失去了Linq没有将所有查询数据保存在内存中的优点。
对我而言,在请求启动时创建上下文并在请求完成呈现时关闭它更有意义。
是否为ASP.NET WebForms a / o ASP.NET MFC / Web API开发了任何模式,以处理从最高层管理EF上下文的透明(以及单元测试友好)的要求?
我特别提到这个问题是因为ASP.NET changes threads while executing the request pipeline。