ADO.NET DbContext Generator против ADO.NET Poco Entity Generator (ObjectContext)

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

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

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

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

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

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

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

1 ответ

Решение

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

API-интерфейс DbContext имеет несколько очень приятных новых функций (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 по-прежнему хороший выбор, потому что вам не нужен подход, основанный на коде.

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