Только код 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.
- Там нет документации, в настоящее время вам придется искать информацию в блогах.
В настоящее время я использую первый подход. После финального релиза я, вероятно, сначала буду более доволен кодом.