Инструмент для преобразования Entity Framework EDMX в Code First - PullRequest
31 голосов
/ 07 сентября 2011

Есть ли инструмент для преобразования edmx в код в первую очередь?Я знаю, что некоторое время назад говорили о том, что кто-то появляется в CTP, но я не могу найти никаких обновлений, касающихся этого.

На форумах MSDN есть парень, который написал свойсобственный (пока недоступен), но ничего от команды EF.

Ответы [ 4 ]

29 голосов
/ 15 декабря 2014

В EF6 Tools & Visual Studio 2013 или Visual Studio 2012 вы сначала получаете код опции из базы данных (см. Скриншот ниже)

enter image description here

Если вы не видите эту опцию, вам необходимо установить Entity Framework 6 Tools для Visual Studio 2012 и 2013 http://www.microsoft.com/en-gb/download/details.aspx?id=40762

Это не преобразует EDMX в код вначале (как было запрошено в вопросе), но он может сначала создать код из существующей БД (которая, как я полагаю, кто-то хотел сделать это из EDMX, будет иметь существующую БД, если только они удалил свою БД).

27 голосов
/ 14 февраля 2013

времена меняются.Существует несколько генераторов, которые будут создавать первые сущности кода и сопоставления, используя EDMX в качестве источника.В библиотеке расширений их несколько.Скорее всего, вы захотите использовать EF 5.x DBContextFluent Generator для C #.http://visualstudiogallery.msdn.microsoft.com/5d663b99-ed3b-481d-b7bc-b947d2457e3c

Существует также EF 5.x DbContect Generator, который iirc помещает информацию о сопоставлении на модели.

После установки любого из них вы можете редактировать EDMX и щелкнуть правой кнопкой мыши.«Добавить элемент генерации кода».Это установит шаблоны .tt и сгенерирует класс сущности, класс DbContext и файлы сопоставления.

Имейте в виду, что если у вас есть какие-либо партиалы с проверкой, если они находятся в той же папке, что и ваш edmx с тем же именем, что и сущность, они будут перезаписаны.Вам просто нужно переименовать эти партиалы, поскольку генератор помещает частичное ключевое слово в сущности, или, что еще лучше, перемещает этот код во вновь создаваемые классы сущностей.

Как только эти файлы будут на месте, вы можете удалитьФайлы .tt и .edmx, и в дальнейшем вы поддерживаете свои сущности в коде.

11 голосов
/ 07 сентября 2011

Нет такого инструмента, потому что EDMX предлагает гораздо больше функций, которые не могут быть переведены в код в первую очередь.Единственный доступный инструмент - EF Power Tools CTP1 , который позволяет создавать отображение кода в первую очередь из существующей базы данных, но при этом он создает только образ вашей базы данных 1: 1 = наименование на основе базы данных, без наследования, без разделения и т. Д..Электроинструменты также позволяют создавать EDMX только для чтения из существующего сопоставления кода вначале.

0 голосов
/ 15 мая 2013

По состоянию на 30 января 2013 г. EF Power Tools (бета-версия 3) является последней версией EF Power Tools и работает с EF4.2-EF6.

...