почему EF занимает много времени в первом вызванном методе - PullRequest
3 голосов
/ 21 июля 2011

Я работаю над приложением в Интернете и использую ef для создания модели и доступа к БД.

  1. создать сеанс var для использования на уровне сеанса:

    private Model.WebsiteModelContainer s_defaultModel;
    public Model.WebsiteModelContainer DefaultModel
    {
        get
        {
            s_defaultModel = HttpContext.Current.Session["DefaultModel"] as WebsiteModelContainer;
    
            if (s_defaultModel == null)
            {
                s_defaultModel = new Model.WebsiteModelContainer();
                HttpContext.Current.Session["DefaultModel"] = s_defaultModel;
            }
    
    
            return s_defaultModel;
        }
    }
    
  2. использовать DefaultModel в коде:

    вернуть DefaultModel.Ages.OrderBy (c => c.AgeName) .ToList ();

1 Ответ

3 голосов
/ 21 июля 2011

После новой сборки вашего проекта первый выполненный запрос к базе данных заставляет EF создавать представления, которые он использует для доступа к данным.Это может вызвать значительную задержку.Вы можете обойти это, предварительно скомпилировав EF.См. Как выполнить предварительную генерацию представлений для повышения производительности запросов из MSDN.

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