Вопрос

Там было много вопросов по управлению EntityContext. продолжительность жизни,

например Суммарирование контекста в LinQ для объектов

Я пришел к выводу, что контекст сущности должен считаться единой работой и, следовательно, не повторно использованным. Здорово.

Но при выполнении некоторых исследований для ускорения доступа к базе данных я столкнулся с этим в блоге ...

Улучшение работоспособности объекта

Пост утверждает, что плохой производительность EFS по сравнению с другими рамками часто связана с EntityConnection объект создается каждый раз новый EntityContext. объект необходим.

Чтобы проверить это, я вручную создал статический объект в Global.Asax.cs.cs. Application_Start ().

Затем я преобразовал весь мой контекст с использованием утверждения к

using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection)
{
   ....
}

Кажется, это немного поборолось немного без каких-либо ошибок, насколько я могу сказать.

Но это безопасно?

Делает использование ApplicationWide Static EntityConnection ввести гоночные условия?

С уважением, Кервин

Это было полезно?

Решение

EntityConnection задокументировано, чтобы быть без потоков. Отказ Я думаю, что вы могли бы объединить их, но вы не можете использовать одно, статичное подключение для веб-приложения, так как будет вовлечено много потоков.

Другие советы

  • Если ваш контекст EF является широким образом, рассмотрим, что пользователь A сделал изменения (не совершенные) и пользователь B совершил свои изменения, все изменения будут преданы базу данных, так как как пользователь A & B используют один и тот же экземпляр

  • В моем проекте я сделал за счет за счет в WebRequest Inance контекста EF - то есть. Объект контекста статичен от начала через конец веб-запроса и всех операций в этом запросе работает с тем же контекстом EF. Это значительно ускорило мою обработку без проблем, упомянутой выше.

Один из способов реализации этого является использование контейнера DI (я использую Unity) для управления сроком службы контекста EF. Срок службы запроса на веб-запрос не выдан из коробки в единстве, но там есть тонны статей, которые показывают, как это можно сделать.

Хет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top