Подтвердить что ты не робот

ADO.NET Генератор DbContext или ADO.NET Poco Entity Generator (ObjectContext)

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

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

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

Из Блог группы ADO.NET, я знаю, что в EF4.1 нет:

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

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

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

4b9b3361

Ответ 1

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

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

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

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