CREATE PROCEDURE GetDatabaseBackup
AS
BEGIN
DECLARE @MyFileName varchar(1000)
SELECT
@MyFileName= 'D:\DATABASE-BACKUP\genxMultiERPLive -' +
REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak'
BACKUP DATABASE genxMultiERPLive
TO DISK = @MyFileName
END
GO
这是我的存储过程。当我执行此存储过程时,它工作正常。当我在C#代码中使用数据库对象调用时,它会引发异常。
public bool DataBaseBackup()
{
int obj = _dbContext.GetDatabaseBackup();
if (obj != 0)
{
return true;
}
return false;
}
_dbContext
是我的数据库的对象。
例外是:
无法在交易中执行备份或恢复操作 BACKUP DATABASE异常终止。
答案 0 :(得分:1)
您应该从
更改调用存储过程的行 int obj= _dbContext.GetDatBaseBackup();
到
_dbContext.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,"GetDatBaseBackup");