Шесть секунд разминки для первой структуры сущности 6 без запроса

entity-framework entity-framework-6

Вопрос

Из моего интеграционного теста:

// Act
Stopwatch w = new Stopwatch();
w.Start();
userService.Create(userDTO);
w.Stop();


public void Create(UserDTO userDTO)
{
    var user = userDTO.ToEntity();
    _context.Entry(user).State = EntityState.Added;
    _context.SaveChanges();
}

6,2 секунды, чтобы сделать «sql insert», сходит с ума. Я уже вижу, что пользователи приложений жалуются, когда они впервые открывают проект, который они используют целый год. Поэтому каждый день они должны ждать 6 секунд ...

Я думал, что время прогрева в EF6 улучшилось?

Могу ли я что-нибудь сделать, чтобы улучшить это жалкое поведение?

Принятый ответ

Попробуйте шаблон EF6 CodeFirst View Generation T4 для C # . Предварительно созданные представления улучшают время запуска приложений, перемещая работу, которая должна быть выполнена во время выполнения, для разработки времени. больше информации


Популярные ответы

Время не затрачивается на вставку простых данных. EF создает модель в памяти, то есть время, в которое вы потратили время.

EF создает модель данных сущности и запускает представление представления (не db-представления) в первый раз, когда вы выполняете операцию в контексте. Взгляните на это сообщение в блоге .

Взгляните сюда, чтобы улучшить производительность, используя предварительно сгенерированные представления, чтобы уменьшить время загрузки модели.

Чтобы повысить производительность, вы можете инициализировать свой асинхронный контекст при запуске приложения. Остерегайтесь многопоточных проблем.

using (var context = new MyContext())
{
    context.Database.Initialize(false);
}


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему