Где лучше всего хранить экземпляр ObjectContext? - PullRequest
2 голосов
/ 15 марта 2009

Я использую расширение для 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. Может быть, вы знаете лучшее решение ...

Спасибо за совет.

1 Ответ

2 голосов
/ 15 марта 2009

Зачем вам нужен метод расширения для этого? Вы должны отказаться от метода расширения и использовать только метод staticstatic class). Также я нашел статью, которая, я думаю, может вам помочь:

Управление жизненным циклом и областью действия Entity Framework ObjectContext в n-уровневых приложениях ASP.NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...