2015-01-30 3 views
1

У меня есть файл dacpac, который я развертываю через приложение, используя библиотеку DacServices. У меня есть следующий код, чтобы сделать это:Развертывание сквозного кода dacpac без развертывания свойств базы данных

var dp = DacPackage.Load(dacpacPath); 
var dbDeployOptions = new DacDeployOptions 
{ 
    BlockOnPossibleDataLoss = false 
}; 
var dbServices = new DacServices(WebConfigHelper.GetDbConnectionString(webConfigPath)); 
dbServices.Deploy(dp, WebConfigHelper.GetDbName(webConfigPath), true, dbDeployOptions); 

Вопрос заключается в том, что с этим кодом, целевая база данных всегда это модель восстановления изменено на «Full», которая является то, что находится в базе данных проекта SSDT (который генерирует dacpac).

Различные целевые базы данных, которые мы развертываем для использования различных свойств базы данных, и мы не знаем целевую модель восстановления DB. Некоторые используют простые, а некоторые используют полностью - мы не хотим его менять.

Как я могу изменить этот код, чтобы он не вносил никаких изменений в свойства целевой базы данных? Я уже пытался отключить параметр «Развернуть свойства базы данных» в проекте базы данных, но приведенный выше код, похоже, отменяет это.

+2

Вы пробовали DacDeployOptions.ScriptDatabaseOptions = false? –

+0

Фантастическое спасибо. Я просмотрел список свойств дважды, и так или иначе пропустил это дважды. Если вы напишете это как ответ ниже, я приму его как решение. –

ответ

2

Класс DacDeployOptions содержит ScriptDatabaseOptions Boolean, для которого может быть установлено значение false, чтобы сохранить существующие настройки базы данных или использовать значения по умолчанию для нового.

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