微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

entity-framework – 用于Web应用程序的EF Code First DBContext Lifetime

我们首先使用cEF ode开发ASP.NET Web应用程序.什么/在哪里为请求创建/处理DBContext的最佳位置?我只有一个上下文,我没有使用任何DI容器.目前,我有多种方法可以为每个请求调用,每个方法都创建自己的上下文.我怎么说,像… GetContextforRequest()并将其用于请求并在处理请求时处理它?

提前致谢

解决方法

对于每个请求使用1个上下文而言,您所寻求的是使用上下文的一种非常好的方法,因为您可以减少创建它们的开销.您可以在BeginRequest上创建新上下文,并将其存储在HttpContext.Current.Items中,并在EndRequest上处理它.

然后你可以创建一个. GetContextforRequest()方法封装来自HttpContext.Current.Items的fetch

不过我会建议使用DI容器.他们中的大多数都有助手帮助每个请求创建和处理对象.

编辑

在请求期间打开Context的好处是您可以利用第一级缓存.这是在Context的生命周期中缓存对象的位置.所以说你有一个名为User的表包含一堆Users,你在同一个请求中调用了context.Set().ToList()两次,第一个调用将从数据库获取数据,第二个调用将从第一级缓存.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐