Модель EF 4.1: первый инструмент или шаблон генерации кода

Есть ли шаблон или инструмент для генерирования кода напрямую из базы данных? Я хочу использовать первый сценарий модели, но мне не нужен файл .edmx для сопоставлений. Есть БД с множеством таблиц и я не хочу писать для этого все классы (мне лень). Итак, есть ли шаблон для генерации кода и установки аннотаций/использования свободного API для автоматического определения отношений и т. д. из существующей базы данных?

Это было бы полезно и в следующем сценарии. Скажем, я использовал .edmx с POCO, и теперь мне не нужны сопоставления в файле .edmx. Мне нужны сопоставления в коде. Было бы здорово иметь инструмент или шаблон для создания сопоставлений в коде из существующей базы данных.

Я начинаю изучать EF 4.1. Я думаю, что «код сначала становится моделью в версии 2, т.е. после создания/выпуска базы данных (в версии 1) и нуждается в некоторых изменениях». Это действительно так? Я хотел бы услышать некоторые комментарии. Спасибо.


person Jonna    schedule 25.05.2011    source источник


Ответы (3)


Ознакомьтесь с функцией «Сначала реконструировать код» в EF Power Tools CTP1, который был только что выпущен.

person Dave    schedule 25.05.2011
comment
Это именно то, что мне нужно. Ему не хватает некоторых функций, но это первая версия. Спасибо. - person Jonna; 25.05.2011

Для создания классов вы можете использовать генерацию шаблона POCO t4. Взгляните на эта подробная ссылка, которая поможет вам начать работу. Таким образом, вы получите все сгенерированные классы.

Для сопоставления вы можете использовать стиль Code-Only для Entity Framework, но создание классов и контекста с использованием шаблона POCO будет иметь гораздо больше преимуществ, чем создание сопоставления самостоятельно. Представьте себе добавление новых таблиц или изменение таблиц, это потребует больше работы. Но мне, безусловно, будет интересно узнать, есть ли для этого какой-либо картографический инструмент.

person DotNetInfo    schedule 25.05.2011
comment
Мне не нужен файл .edmx для сопоставлений. Я хочу это в коде. - person Jonna; 25.05.2011
comment
В настоящее время я использую .edmx с оракулом, и это боль, поскольку вставки, созданные в магазине, теряются, если я делаю какие-либо изменения и сохраняю их. Если сопоставления есть в коде, мне не нужно его менять. Я могу иметь гораздо больше контроля над кодом, чем файл .edmx. - person Jonna; 25.05.2011
comment
Да согласен. Я знал, как сгенерировать классы (даже я ленивый), что и использовал сам. Однако не знал ни о каком картографическом инструменте. Приятно знать из ответа Дэйва - person DotNetInfo; 25.05.2011

Возможно, вы используете EF-провайдера Devart dotConnect for Oracle при работе с базой данных Oracle. В этом случае следующая информация поможет вам выбрать инструмент.

Первая версия Entity Framework Power Tools также содержала возможность создания модели Code-First с плавным сопоставлением из существующей базы данных. Хотя эта функциональность полезна, ее гибкость ограничена: разработчик может только установить строку подключения; после этого классы генерируются из всех объектов базы данных, доступных пользователю. Это не очень удобно, так как в Oracle, например, пользователю доступны многочисленные схемы, содержащие сотни, а иногда и тысячи таблиц.

Вместо того, чтобы прибегать к этой ограниченной функциональности, пользователи поставщиков Devart ADO.NET могут воспользоваться впечатляюще надежными возможностями разработки во время разработки Entity Developer, конструктора EF, поставляемого с поставщиками Devart. Также возможен выбор между подходом Database-First, предусмотренным в EF Power Tools, и подходом Model-First, в рамках которого в EDM-конструкторе создаются классы Code-First.

По сравнению с EF Power Tools подход Database-First к разработке моделей EF Code-First также позволяет выбирать объекты, которые должны быть доступны в модели, задавать правила именования для создания имен и свойств классов и т. д. Кроме того, полученную модель можно модифицировать и улучшать в конструкторе.

Чтобы лучше удовлетворить потребности разработчиков, генерация кода Code-First в Entity Developer как для C#, так и для VB основана на шаблоне T4, который легко доступен и может быть изменен в многофункциональном редакторе T4, содержащемся в Entity Developer.

Дополнительные сведения о разработке Code-First в Entity Developer см. в разделе «Entity Developer — шаблон EF Code First DbContext» http://www.devart.com/blogs/dotconnect/index.php/entity-developer-ef-code-first-dbcontext-template.html

person Devart    schedule 25.05.2011