从实体框架连接恢复数据库

时间:2013-08-27 12:49:27

标签: sql-server entity-framework ado.net database-restore

我必须使用asp.net mvc 4和实体框架来实现管理Web过程。

在此过程中,我让用户执行一些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命令。

如果我尝试执行直接恢复,则会收到无法在事务中执行恢复的消息。

您知道我可以使用实体框架连接调用这一系列命令吗?

感谢,   卢卡

1 个答案:

答案 0 :(得分:0)

我建议您不要使用EF进行恢复。 甚至访问Context.Database。可以触发你不期望的活动。 例如 opened/closed connection ? and EF

建议你阅读 Context database class 在你决定这个解决方案之前。

我故意不要将EF用于此类数据库操作

SqlConnectionFactory 
SqlConnection
SqlCommand