Запуск командлетов entityframework из моего кода

Я создаю небольшую программу поверх entityframework, которая позволяет редактировать POCO с помощью пользовательского интерфейса. как часть процесса я хотел бы вызвать команду «добавить-миграцию» из своего кода, чтобы сохранить взаимодействие остальных программистов с консолью диспетчера программ. Это вообще возможно?

Благодарность


person Guy    schedule 09.07.2012    source источник
comment
Итак, вы создаете только пользовательский интерфейс для того, что вам уже дает powershell? Что не так с использованием powershell?   -  person Ladislav Mrnka    schedule 09.07.2012
comment
у нас есть сложное приложение с несколькими программистами. Сначала я создал оболочку для БД, используя код EF. созданная мной утилита создает весь резервный код для EF. поэтому, поскольку я дал возможность редактировать pocos, я также хотел бы выполнять миграцию автоматически. Я не хочу, чтобы программисты редактировали pocos, а затем переходили к powershell. где-то по пути кто-то все испортит.   -  person Guy    schedule 09.07.2012
comment
Вы упомянули, что у вас есть программисты - разве программист не должен писать код вместо того, чтобы использовать какой-то графический интерфейс для щелчка по коду? Похоже, вы прикладываете огромные усилия, чтобы программистам жилось тяжелее. Также уже есть инструменты для генерации POCO: шаблоны EDMX + T4.   -  person Ladislav Mrnka    schedule 09.07.2012


Ответы (1)


Командлет Add-Migration определяется в отдельной сборке EF 4.3 Powershell, используемой консолью диспетчера пакетов. Эта сборка ссылается на реальную сборку EF 4.3. Основная логика, представленная в этой сборке, — это класс ToolingFacade из пространства имен System.Data.Entity.Migrations.Design. Открытая логика включает в себя извлечение базы данных и ожидающих миграций, а также формирование новой миграции, но сборка PowerShell содержит рабочий процесс выполнения и создает мост между EF, PowerShell и Visual Studio (добавление классов в ваш проект) — это то, что вы должны перепроектировать и повторно реализовать в своем инструменты.

Изменить: вы также можете попробовать запустить MigrationCommands.AddMigration непосредственно из сборки PowerShell.

person Ladislav Mrnka    schedule 09.07.2012