ADO.NET DbContext Generator против ADO.NET Poco Entity Generator (ObjectContext) - PullRequest
58 голосов
/ 17 марта 2011

Я собираюсь начать реализацию инфраструктуры доступа к данным проекта, который был спроектирован с подходом к DDD ( это моя первая попытка DDD, так что будьте осторожны; -) ).

Я буду использовать Entity Framework.До сих пор я изучал метод, предложенный Джули Лерман в ее замечательной книге Programming Entity Framework , где используется ADO.NET POCO Entity Generator ,с некоторыми изменениями в шаблонах T4 и некоторым другим пользовательским кодом.
Сегодня я начал читать статьи по EF4.1 и ADO.NET DbContext Generator , используя Database First подход, и я пытаюсь решить, к какому из них я должен пойти.

Подход DbContext и EF4.1 к DDD кажется более подходящим, чем POCO.Сущности, но я боюсь, что это может привести к некоторым проблемам в ближайшем будущем, поскольку EF4.1 все еще находится в RC.

Из Блог команды ADO.NET , я знаю, чтоEF4.1 не включает:

  • Поддержка перечисления
  • Поддержка типа пространственных данных
  • Поддержка хранимых процедур в Code First
  • Поддержка миграции в Code First
  • Настраиваемые соглашения в Code First

Насколько я понимаю, поскольку я буду использовать База данных сначала , имеется меньшее число функций, которые не были включены.

В заключение мой вопрос:
Могу ли я заменить Генератор объектов POCO на EF4.1 DbContext Generator?

1 Ответ

54 голосов
/ 17 марта 2011

С точки зрения чистого создания объектов POCO, нет разницы между двумя генераторами.Оба генератора генерируют одни и те же объекты, однако ADO.NET POCO Entity Generator основан на API ObjectContext, тогда как ADO.NET DbContext Generator основан на API DbContext.

DbContext'sAPI имеет несколько очень хороших новых функций (Local, Query on навигационные свойства и т. Д.), И API несколько упрощен, но в то же время похоже, что некоторые функции, используемые в ObjectContext API, отсутствуют в DbContext API (или, по крайней мере, не имеютдостаточно исследовано)

EF 4.1 RC выпущен на открытом воздухе.Это означает, что вы можете создать реальное приложение с ним, потому что API не изменится в RTW (будут исправлены только ошибки).Также RTW должен появиться в следующем месяце, поэтому я думаю, что вы не будете готовы к заявке до того, как будет выпущена окончательная версия.

ObjectContext API или DbContext API?ObjectContext API гораздо лучше освещается в документации и сообщениях в блогах.Вы можете найти множество примеров об этом.Также его ограничения уже известны.DbContext API - новая версия.Очень многообещающий релиз, в основном из-за подхода, основанного на коде.Количество постов в блогах все еще очень ограничено, нет книг, и API недостаточно проверен.Так это зависит от того, готовы ли вы бороться с новым API?Если нет, то ObjectContext API все еще является хорошим выбором, потому что вам не нужен подход, основанный на коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...