Зачем вы хотите?
Причина, по которой вы делаете это разобщение, состоит в том (я полагаю), что вы можете переключить уровень данных на более позднем этапе без необходимости что-либо изменять в веб-проекте и как можно меньше в бизнес-проекте. Для этого вам следует убедиться, что все ваши классы работают против интерфейсов , а не против конкретных реализаций.
В вашем примере вы, вероятно, должны определить некоторый интерфейс Repository
, который включает метод Initialize()
. Затем вы создаете класс (возможно, ваш специализированный DbContext), реализующий интерфейс, и вы работаете против этого. В методе Initialize()
в вашем хранилище вы вызываете Database.SetInitializer()
, и, таким образом, вам никогда не придется ссылаться на System.Data.Entity ни в Интернете, ни в бизнес-проектах.