Как управлять dbcontext в многоуровневом веб-приложении asp.net с помощью EF 4.x - PullRequest
2 голосов
/ 13 марта 2012

В решении есть четыре проекта: DAL, BOL, UI и Model.

Модель содержит классы POCO, а DAL просто содержит класс DbContext с введенными в него моделями.Все проекты имеют ссылку на модель проекта, пользовательский интерфейс имеет ссылку на BOL, а BOL имеет ссылку на DAL.

Текущий метод, например, для сохранения данных: В пользовательском интерфейсе после нажатия кнопки «Отправить» данныеформа хранится в модельном классе POCO, класс POCO переходит к методу сохранения BOL, когда создается экземпляр BOL, также создается экземпляр dbcontext, а метод save использует этот dbcontext для отправки изменений.

Вопрос: создает экземпляр dbcontextкак это эффективно?Должен ли я сделать что-то еще, чтобы добиться большей производительности?Я пытаюсь добиться максимальной производительности, потому что одновременно в базу данных может быть вставлено много записей.

1 Ответ

0 голосов
/ 13 марта 2012

Под капотом DbContext и EF по-прежнему используют механизмы подключения ADO.NET для подключения к базе данных, поэтому они по-прежнему используют пул соединений ADO.NET и тому подобное.При этом вы не хотите, чтобы DBContext оставался открытым дольше, чем нужно, потому что тогда он будет удерживать соединение из пула соединений, и соединение будет простаивать чаще, чем нет.Создайте свой DBContext в операторе использования, когда вам это нужно.

...