从 asp mvc 中的备份恢复数据库

Restore database from backup in asp mvc

我是 asp mvc 的新手,我正在尝试执行备份数据库并从备份文件恢复它的操作

这里是代码

public class BackupController : Controller
{
    private RemasEntities1 db = new RemasEntities1();
    // GET: Backup
    public ActionResult BackupDatabase()
    {
        string dbPath = Server.MapPath("~/App_Data/DBBackup.bak");
        using (var db = new RemasEntities1())
        {
            var cmd = String.Format("BACKUP DATABASE {0} TO DISK='{1}' WITH FORMAT, MEDIANAME='DbBackups', MEDIADESCRIPTION='Media set for {0} database';"
                , "Remas", dbPath);
            db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, cmd);
        }
        return new FilePathResult(dbPath, "application/octet-stream");
    }

   
    public ActionResult RestoreDatabase()
    {
        string dbPath = Server.MapPath("~/App_Data/DBBackup.bak");
        using (var db = new RemasEntities1())
        {

            var cmd = String.Format("restore DATABASE {0} from DISK='{1}';"
                , "Remas", dbPath);
            db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, cmd);
        }
        return View();
    }
}

备份操作运行良好,但当我尝试从还原操作还原数据库时,它抛出异常

An exception of type sql.data.sqlexception' occured in entityframework.sqlserver.dll but was not handled in user code

Restore cannot process database 'Remas' because it is in use by this session. It is recommended that the master database be used when performing this operation

尝试使用 master:

var cmd = String.Format("USE master restore DATABASE Remas from DISK='{0}' WITH REPLACE;", dbPath);