Добавление генератора EntityObject EF 6.x в Visual Studio 2017

Мы планируем перейти на Visual Studio 2017. Для нашего edmx-файла Entity Framework 6 мы используем Расширение EntityObject Generator для создания нужного нам ObjectContext.

Это расширение совместимо только до VS2013 — неофициально до VS2015. Решение просто настроить файл манифеста в vsix, похоже, не работает для VS2017, хотя, я думаю, среди прочего, из-за изменения архитектуры vsix.

Есть ли способ получить шаблон ObjectContext без использования старой Visual Studio? Я предполагаю, что шаблон не всегда одинаков для каждого файла edmx, поэтому его можно просто скопировать из существующего проекта.


person telandor    schedule 15.09.2017    source источник
comment
Вам действительно следует подумать об отказе от ObjectContext и рефакторинге вашего кода в DbContext. Действительно, вам больше не следует использовать ObjectContext.   -  person Gert Arnold    schedule 15.09.2017
comment
Я знаю... Но боюсь, это будет не так просто. Но, безусловно, заслуживает обсуждения.   -  person telandor    schedule 15.09.2017
comment
Я сделал это пару лет назад в большом приложении. Это было не так уж сложно. Убедитесь, что у вас достаточно регрессионных тестов, и действуйте.   -  person Gert Arnold    schedule 16.09.2017


Ответы (1)


Я только что сделал это в VS2017.

Загрузите пакет расширения VS «EF 6.x EntityObject Generator for C#» из MS. Это файл *.VSIX. Переименуйте его в ZIP. откройте zip-файл и внутри вы найдете еще один zip. Там вы увидите файл TT. Скопируйте его.

В вашем проекте, в котором есть файл MyModel.TT, который генерирует DbSet, просто замените этот файл TT на тот, который вы получили из файла vsix.

Отредактируйте одну строку:

    SourceCsdlPath = @"$edmxInputFile$",

на ваш

    SourceCsdlPath = @"myEDM.emdx",

сохраните файл TT, и ваш код модели С# будет сгенерирован со старыми EntityObjects

person Lava    schedule 26.06.2018