【问题标题】:Where is best place to store ObjectContext instance?存储 ObjectContext 实例的最佳位置在哪里?
【发布时间】:2009-03-15 09:57:16
【问题描述】:

我使用 Object 的扩展名,因为它提供了非常短的可访问字符串。

public static BusinessLayer.Models.SearchEngineEntities db(this object o)
    {

        if (HttpContext.Current == null)
            return new BusinessLayer.Models.SearchEngineEntities(ConfigurationManager.ConnectionStrings["SearchEngineEntities"].ConnectionString);

        if (HttpContext.Current.Items.Contains("DataContext"))
        {
            return (BusinessLayer.Models.SearchEngineEntities)HttpContext.Current.Items["DataContext"];
        }

        BusinessLayer.Models.SearchEngineEntities context = new BusinessLayer.Models.SearchEngineEntities(ConfigurationManager.ConnectionStrings["SearchEngineEntities"].ConnectionString);
        HttpContext.Current.Items.Add("DataContext", context);
        return context;
    }

所以结果我有如下执行字符串:

"".db().Users.Include("")....

但我不能 100% 确定这是最佳解决方案。我希望你比我更清楚,DataContext 或 ObjectContext 实例在哪里以及如何存储。也许你知道更好的解决方案...

谢谢你的建议。

【问题讨论】:

    标签: c# asp.net-mvc linq-to-sql entity-framework


    【解决方案1】:

    为什么需要一个扩展方法来做到这一点?您应该放弃扩展方法,只使用static 方法(和static class)。我还发现了一篇文章,我认为它可能对您有所帮助:

    Managing Entity Framework ObjectContext lifespan and scope in n-layered ASP.NET applications

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多