Только код EF POCO VS EF POCO с моделью данных объекта

Возможность полностью отделять доменные объекты от любого вида кода персистентности делает системы намного более расширяемыми и обслуживаемыми. Тестирование становится намного проще, когда бизнес-логику можно тестировать отдельно от кода хранилища. Использование POCO с Entity Framework (EF) определенно является шагом в правильном направлении:)

Есть 2 типа использования poco с EF 1. Использование конструктора сущностей 2. Использование только кода

какой из них лучше всего подходит для кода EF Poco или EF Poco, использующего конструктор модели данных объекта?

Спасибо

1 ответ

Это просто вопрос выбора.

EFv4 с дизайнером

Плюсы:

  • У вас есть дизайнерская поддержка и шаблон T4, который будет генерировать объекты для вас = RAD.
  • У вас очень большой набор функций, включая поддержку представлений, отображение хранимых процедур и некоторые объекты, определенные в пользовательской модели, такие как QueryView или определенная функция модели.
  • Поддержка других типов EF при необходимости (объекты самообследования, объекты Entity).

Минусы:

  • Дизайнер не очень хороший инструмент для больших моделей (более 50 таблиц)
  • Не все функции поддерживаются в конструкторе - вы должны получить доступ к EDMX как XML
  • Структура EDMX XML, вероятно, является наиболее сложным и трудным для понимания описанием среди всех доступных инструментов.NET ORM.
  • Работать в общей среде с дизайнером - это просто боль - лучше использовать эксклюзивные блокировки на EDMX
  • Изменить: я забыл свой очень популярный недостаток. Дизайнер хранит все данные отображения в EDMX вместе со своими собственными данными о позиционировании объектов на диаграмме. Даже такое глупое действие, как масштабирование диаграммы, проверит файл EDMX из системы контроля версий.

Код EF первый

Плюсы:

  • Возможность определять все в коде
  • Отображение на основе атрибутов и Fluent API
  • Некоторые очень хорошие функции API - соглашения, Local и т. Д.
  • Я думаю, что этот API менее сложен и проще в использовании

Минусы:

  • Это еще не финальный релиз. Текущий выпуск - только предварительный просмотр технологии сообщества 5.
  • Из-за этого API может измениться в финальной версии.
  • Вы должны написать весь код самостоятельно.
  • Набор функций ограничен по сравнению с "большим" EF.
  • Там нет документации, в настоящее время вам придется искать информацию в блогах.

В настоящее время я использую первый подход. После финального релиза я, вероятно, сначала буду более доволен кодом.

Другие вопросы по тегам