Визуальная студия 2010 проект базы данных и генерация кода - PullRequest
2 голосов
/ 23 августа 2010

Я пытаюсь использовать проект базы данных в VS2010, но мои настройки немного отличаются от стандартных, и я не могу найти простой способ заставить его работать.

У меня есть «модельный» проект, который содержит некоторые определения модели XML простой информации для процесса ETL. Помимо схемы для предоставленной информации, она содержит другие метаданные, например, сведения о том, какие столбцы нужно сопоставлять с другими таблицами, что делать в случае несоответствия и т. Д. И т. Д. И т. Д.

Используя шаблоны T4, я затем генерирую сценарии sql, представления и таблицы для управления всем этим - один файл sql на файл xml. Существует около 30 XML-определений, но количество параметров невелико, а шаблон очень повторяющийся, поэтому он хорошо работает.

Я хочу сбросить эти sql-файлы в проект базы данных, чтобы он генерировал сценарии развертывания и определял изменения базы данных для меня. Я могу сделать так, чтобы файлы были объединены в один скрипт. Есть ли способ заставить VS анализировать сценарии автоматически или мне нужно импортировать их каждый раз?

РЕДАКТИРОВАТЬ: Первоначально я спросил о том, чтобы заставить VS не разбивать мои сценарии на отдельные компоненты. Я нашел решение этой проблемы: скопируйте существующий скрипт в проект и, что самое важное, измените «действие сборки» для скрипта на «сборка» (по какой-то причине по умолчанию «не в сборке»). Затем VS добавит элемент в модель, и он станет частью сгенерированных сценариев - ууу! Однако до сих пор нет способа ссылаться на сценарии в других проектах ...

Я прочитал инструкции по MS для проектов баз данных, но не нашел в ней ничего, что казалось бы подходящим

Спасибо за вашу помощь,

1 Ответ

2 голосов
/ 23 августа 2010

Вы можете сделать это с помощью T4 Toolbox .Вот как это делается: http://www.olegsych.com/2010/03/t4-tutorial-integrating-generated-files-in-visual-studio-projects/. В частности, вы хотите воспользоваться преимуществами свойств Template.Output.File и Template.Output.Project.

...