Полная инкапсуляция Entity Framework

Я разрабатываю бизнес-приложение, использующее WPF в качестве уровня представления (конечно, с MVVM).

Я использую ADO.Net Entity Framework для сопоставления базы данных.

Я не хочу использовать сущности непосредственно в коде (на бизнес-уровне). Я хочу разделить свой проект на 3 слоя:

  • Уровень представления

  • Бизнес-уровень

  • Уровень доступа к данным

Согласно этому сообщению Я хочу реализовать полную инкапсуляцию Entity Framework, чтобы обеспечить разделение проблем и не зависеть от EF как ORM в будущем.

Можете ли вы помочь мне, предоставив мне несколько примеров для инкапсуляции EF и того, как реализовать это в коде.


person user1288058    schedule 27.03.2012    source источник


Ответы (3)


В соответствии с этим

Я хочу реализовать полную инкапсуляцию Entity Framework. чтобы обеспечить разделение проблем и не зависеть от EF в будущем как ORM

Обычно вы создаете себе множество проблем, если идете по этому пути. Если вы выберете EF, вам действительно следует в полной мере использовать функции, а не скрывать это за другой абстракцией.

Сам EF уже является слоем абстракции над БД, нет необходимости создавать еще одну абстракцию поверх этого.

person J.W.    schedule 27.03.2012

Я хотел бы взглянуть на этот пост, в котором реализованы UnitOfWork и Repository шаблоны для реализации того, что, как я понимаю, вы хотите достичь.

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx

person sebagomez    schedule 27.03.2012

Есть один способ сделать это - использовать POCO. Entity Framework 4.0 поставляется с поддержкой POCO (Plain CLR Objects). Но у POCO есть свои сложности, когда приходится иметь дело с Отношениями и ассоциациями. Вы можете сослаться на блог Джули Лерман (хорошая статья)

http://thedatafarm.com/blog/data-access/agile-entity-framework-4-repository-part-1-model-and-poco-classes/

person Maverick    schedule 13.08.2012