Генератора DbContext ADO.NET и генератор сущностей Poco ADO.NET (контекст objectcontext)


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

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

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

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

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

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

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

1 58

1 ответ:

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

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-это новый релиз. Очень перспективный релиз, в основном из-за подхода code-first. Существует еще очень ограниченное количество сообщений в блоге, нет книги и API не доказано достаточно. Так это зависит, если вы готовы бороться с новым API? Если нет, то ObjectContext API по-прежнему является хорошим выбором, потому что вам не нужен подход code-first.