当我从c#调用存储过程时,它会抛出一个异常

本文关键字:异常 一个 调用 存储过程 | 更新日期: 2023-09-27 18:09:14

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是我的数据库对象。

异常是:

无法在事务中执行备份或恢复操作。

备份数据库异常终止。

当我从c#调用存储过程时,它会抛出一个异常

您应该从

更改调用存储过程的行

int obj= _dbContext.GetDatBaseBackup();

_dbContext.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,"GetDatBaseBackup");