gpt4 book ai didi

asp.net - Entity Framework ObjectContext 重用

转载 作者:行者123 更新时间:2023-12-03 23:10:52 34 4
gpt4 key购买 nike

我现在正在学习 EF,并且对 ObjectContext 有疑问:

访问数据库时是否应该为每个查询(函数)创建 ObjectContext 实例?

还是最好创建一次(单例)并重用它?

在 EF 之前,我使用企业库数据访问 block 并为 DataAccess 功能创建了 dataacess 实例......

最佳答案

我认为最常见的方法是根据请求使用它。开始创建它,做你需要的(大多数时候这些是需要公共(public)ObjectContext的操作),最后dispose。大多数 DI 框架都支持这种情况,但您也可以使用 HttpModule创建上下文并将其放置在 HttpContext.Current.Items .这是一个简单的例子:

public class MyEntitiesHttpModule : IHttpModule
{
public void Init(HttpApplication application)
{
application.BeginRequest += ApplicationBeginRequest;
application.EndRequest += ApplicationEndRequest;
}

private void ApplicationEndRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Items[@"MyEntities"] != null)
((MyEntities)HttpContext.Current.Items[@"MyEntities"]).Dispose();
}

private static void ApplicationBeginRequest(Object source, EventArgs e)
{
var context = new MyEntities();
HttpContext.Current.Items[@"MyEntities"] = context;
}
}

关于asp.net - Entity Framework ObjectContext 重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2724176/

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