3

Я использую EntityFramework 6 в VS2013 с базой данных. Когда вы загружаете базу данных, вы можете получить хранимые процедуры, которые строят методы в вашем контексте для каждого proc, а также классы для каждого из типов возвращаемых данных, которые он выводит из процедур.Сгенерировать методы хранимой процедуры EF из командной строки

Я ищу способ запустить это из командной строки. Самое близкое, что я могу найти, это EdmGen, но это, по-видимому, делает только таблицы.

Я видел EfGen, но помимо этого просто загрузка из какого-то парня без исходного кода или экспертной оценки, по-видимому, по крайней мере одна версия.

Создание названий и параметров методов достаточно просто - я мог бы сделать это сам с метаданными SQL Server, однако создание классов результатов было бы более сложным, поэтому в идеале я хотел бы делать то, что делает VS.

Есть ли команда SDK или что-то, что я могу извлечь из Visual Studio, чтобы сделать это по запросу? Мне часто приходится перетягивать мои процессы (в начале процесса разработки, так что вещи постоянно меняются), и это хлопот, чтобы сделать это в пользовательском интерфейсе.

ответ

4

Я не думаю, что то, что вы пытаетесь сделать, возможно из командной строки. Как вы заметили в EF6 Designer, нет публичного API для обратной инженерии, аналогичного тому, который был показан EdmGen. Отсутствие API на самом деле не является самой большой проблемой здесь - в целом модели, созданные EdmGen, и новый дизайнер семантически одинаковы - единственное различие заключается в том, что в EF6 для SqlServer были введены два новых токена манифеста поставщика - 2012 для Sql Server 2012 и 2012.Azure для Sql Azure. Вы будете получать эти токены манифеста провайдера при таргетинге на вышеуказанные базы данных с новым дизайнером, но при использовании EdmGen вы получите 2008. Реальная проблема здесь (и причина, почему EdmGen не поддерживает создание/импорт функций хранилища) заключается в том, что в модели поставщика EF нет способа получить описание результатов, возвращаемых функцией store. Чтобы компенсировать это, разработчик использует провайдера DDEX, который может вернуть описание первого набора результатов (теперь вы также знаете, почему EF Designer не поддерживает хранимые процедуры, возвращающие несколько наборов результатов, даже если он поддерживается средой выполнения) возвращается функцией магазина. Поскольку DDEX - это в основном задача VS, я не думаю, что вы сможете импортировать функции хранилища из командной строки, используя готовые инструменты.

Смежные вопросы