2013-08-27 2 views
1

Мне нужно реализовать веб-процедуру администрирования с использованием asp.net mvc 4 и структуры сущности.восстановить db из связи с инфраструктурой сущности

В этой процедуре я разрешаю пользователю выполнять резервное копирование и восстановление некоторых баз данных SQL Server.

У меня нет проблем с процедурой резервного копирования, но у меня есть некоторые проблемы с процедурой восстановления.

Я думаю, что хорошая SQL последовательность команд такова:

"ALTER DATABASE [" + prj.Denominazione_Db + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE" 

"RESTORE DATABASE [" + prj.Denominazione_Db + "] FROM DISK = '" + fileDaRestorare +"'" 

"ALTER DATABASE [" + prj.Denominazione_Db + "] SET MULTI_USER" 

"GO" 

Я установил дб в однопользовательском режиме, восстановления и сброса в многопользовательском режиме. Я провел несколько экспериментов, используя соединение с инфраструктурой сущности, но получаю несколько исключений, например . Я не могу использовать команду alter database в команде с несколькими командами или Невозможно вызвать команду alter database внутри транзакции.

Если я пытаюсь выполнить для непосредственного восстановления, я получаю сообщение, которое не может выполнить восстановление внутри транзакции.

Знаете ли вы, может ли я вызвать эту последовательность команд, используя соединение с инфраструктурой сущности?

спасибо, Luca

+0

В любом случае вы должны начать с «использовать TempDB». Я был бы очень удивлен, если бы вы могли восстановить подключенную к нему базу данных. – tschmit007

+0

вы пробовали использовать (TransactionScope trans = new TransactionScope (TransactionScopeOption.Suppress)) {} ' – tschmit007

ответ

0

Я рекомендую вам не использовать EF для восстановления. Даже доступ к базе контекста. может вызвать активность, которую вы ожидаете. например opened/closed connection ? and EF

Предлагаем Вам прочитать Context database class , прежде чем принять решение по этому решению.

Я намеренно не использую EF для таких БД действий только

SqlConnectionFactory 
SqlConnection 
SqlCommand 
Смежные вопросы