2015-01-12 3 views
2

В настоящее время я использую EF6 и использую первый подход модели. Насколько я понимаю, EF7 будет отходить от использования EDMX и перейти от более кодового подхода. Теперь я знаю, что по-прежнему буду иметь возможность перепроектировать из моей базы данных в классы, если это необходимо.Entity Framework 7 и манипуляции с EDMX для автоматического создания пользовательского кода

Однако я не уверен, что любая манипуляция, которую я сейчас выполняю с EF6, будет поддерживаться в любом случае в EF7.

На данный момент я пишу шаблоны T4, которые читают через EDMX, выбирают сущности и создают на их основе новые классы. Например, я создаю частичные классы для каждого объекта с глубокими методами клонирования. Я также создаю классы репозитория на основе сущностей и создаю методы для поиска по первичному ключу, на основе которого свойства в каждом классе были идентифицированы как первичный ключ.

Если я потеряю EDMX, значит ли это, что мне нужно вернуться к созданию вручную? Или есть другой способ?

+0

Мне трудно переносить даже небольшой фрагмент кода в EF7. Желаю, чтобы кто-то из MS создавал источник с открытым исходным кодом EDMX. Поскольку эти администраторы баз данных в корпоративном мире НЕ согласятся на первый подход. По крайней мере, в обозримом будущем! –

ответ

0

Если вы хотите продолжать использовать шаблоны T4, вы можете переключиться на что-то вроде подхода CodeFirst -> ReverseEngeneer.

Вы обновляете модель в коде, генерируете новую миграцию, проверяете ее в базе данных и затем используете первый подход к обратному указателю (http://msdn.microsoft.com/en-US/en-en/data/jj593170.aspx), чтобы генерировать все остальное. Теоретически он может быть автоматизирован.

В моей команде мы делаем это вручную, но нам не нужны миграции, только первые контексты кода и множество дополнительных вещей, которые T4 генерирует хорошо.

+0

Так что в основном шаблоны t4 будут манипулировать базой данных, а не EDMX? – eyeballpaul

+0

Все еще EDMX, но он нигде не хранится. Инструмент ReverseEngeneer создает его на лету. – aershov

+0

Мне нужно будет отдать это. Как это работает с изменениями, которые я обычно делаю в EDMX? А именно для изменения столбца Id определенных таблиц в столбце перечисления. – eyeballpaul

0

Да, вы все еще можете использовать шаблоны T4 с кодом First, мы перемещаем классы Entity вместо EDMX Model.

Я смотрел на VS2015 в последнее время и возникли некоторые проблемы с Т4 и asp.net 5 и связанных с ними проектов (FileManager висит несколько выходов файлов и вам потребуется последняя версия Visual Studio, в настоящее время Update 1)