从 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);
我是 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);