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