gpt4 book ai didi

entity-framework - Web 应用程序的 EF Code First DBContext 生命周期

转载 作者:行者123 更新时间:2023-12-01 23:15:25 25 4
gpt4 key购买 nike

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

提前致谢

最佳答案

就每个请求有 1 个上下文而言,您正在寻找什么是使用上下文的一种很好的方式,因为您可以减少创建它们的开销。您可以在 BeginRequest 上创建新上下文,并将其存储在 HttpContext.Current.Items 中,并在 EndRequest 上处理它。

然后您可以创建一个 . GetContextforRequest() 方法封装从 HttpContext.Current.Items 获取

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

编辑

在请求期间打开上下文的好处是您可以利用一级缓存。这是在 Context 的生命周期内缓存对象的地方。假设您有一个名为 User 的表,其中包含一堆用户,并且您在同一个请求中两次调用 context.Set().ToList() ,第一次调用将从数据库中获取数据,第二次调用将从中检索数据一级缓存。

关于entity-framework - Web 应用程序的 EF Code First DBContext 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com