У вашего подхода есть несколько проблем. Прежде всего, статические методы, как правило, являются проблемой слабой связи, и вы быстро это заметите, когда попытаетесь выполнить модульное тестирование своего кода. Кроме того, у вашего бизнес-уровня есть зависимость от System.Web
, что делает вашу технологию бизнес-уровня специфичной, что сильно затруднит перемещение части системы, например, в службу Windows, и снова делает модульное тестирование практически невозможным.
Вместо этого начните вводить класс Entities
в конструктор всех типов, которые в этом нуждаются. В начале каждого запроса вы можете создать график зависимости сервисов в вашем приложении, специфичный для этого запроса. На этом этапе вы можете определить, что экземпляр Entities
должен иметь срок действия веб-запроса.
Это, однако, начнет обременительно обходиться без DI-фреймворка. Или, по крайней мере, структура DI сделает это намного проще.
Когда вы начнете писать модульные тесты, вы обнаружите, что это будет очень сложно при непосредственном использовании EF ObjectContext
в вашем приложении. Эта статья может дать вам несколько идей, как абстрагировать ObjectContext
за тестируемым интерфейсом.