2013-08-27 8 views
1

asp.net mvc 4 및 엔터티 프레임 워크를 사용하여 관리 웹 프로 시저를 구현해야합니다.엔터티 프레임 워크 연결에서 데이터베이스 복원

이 절차에서는 사용자가 일부 SQL Server 데이터베이스의 백업 및 복원을 실행하도록합니다.

백업 절차에 문제가 없지만 복원 절차에 몇 가지 문제가 있습니다. ,

"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" 

내가 단일 사용자 모드에서 DB를 설정, 복원 및 다중 사용자 모드에서 다시 :

나는 좋은 SQL 명령 시퀀스이라고 생각합니다. 엔티티 프레임 워크 연결을 사용하여 몇 가지 실험을 수행했지만 과 같은 몇 가지 예외가 발생했습니다. 또는 트랜잭션 내에서 alter database 명령을 호출 할 수 없습니다.

직접 복원을 실행하려고하면 트랜잭션 내에서 복원을 실행할 수없는 메시지가 나타납니다.

엔터티 프레임 워크 연결을 사용하여이 일련의 명령을 호출 할 수 있습니까?

덕분에, 루카

+0

어떤 방법을 EF를 사용 DONT. 연결되어있는 데이터베이스를 복구 할 수 있다면 매우 놀랄 것입니다. – tschmit007

+0

'(TransactionScope trans = new TransactionScope (TransactionScopeOption.Suppress)) {}' – tschmit007

답변

0

난 당신이 복원 EF를 사용하지 말아 좋습니다. 심지어 Context.Database에 액세스합니다. 기대하지 않는 활동을 유발할 수 있습니다. 예를 들어 opened/closed connection ? and EF

는이 솔루션을 결정하기 전에 당신이 Context database class 을 읽을 제언한다.

나는 고의적 DB 작업 당신이 "의 tempdb를 사용합니다"로 시작해야 만

SqlConnectionFactory 
SqlConnection 
SqlCommand