我只想从ASP.NET Core 2.0 MVC调用存储过程。
我多次看到这种类型的问题,但是每个问题都包含一些参数或由单个表调用任何参数。
但是没有任何东西对我有用。
因为我只想调用存储过程,所以整个功能只能由存储过程完成。
但是我不知道如何通过控制器调用特殊的存储过程。
这是我的存储过程:
create procedure dbbackup
@BackupSQLScript nvarchar(max),
@SQLBackupFileName nvarchar(max),
@DatabaseName sysname,
@SQLBackupFolder nvarchar(400)
as
begin
set @DatabaseName = 'SQL Database'
set @SQLBackupFolder = 'D:\'
set @SQLBackupFileName = replace(@DatabaseName, ' ', '-') + convert(varchar, getdate(), 112) + '.bak'
set @BackupSQLScript = 'BACKUP DATABASE [' + @DatabaseName + ']
TO DISK = ''' + @SQLBackupFolder + @SQLBackupFileName + ''''
print @BackupSQLScript
exec sp_executesql @BackupSQLScript
end
仅从控制器调用此存储过程。
[首先创建一个带有空主体的类,但是.Net Core可能会抱怨该类没有主键,因此您可以添加一个用[Key]
装饰的属性>
public class simple { [Key] public int nothing {get; set;} }
然后在dbContext类中将其添加到DbSet声明中
public virtual DbSet<simple> Simple { get; set; }
然后在您的控制器中,您只需执行此操作
public IActionResult SimpleProcedure()
{
var q = dbcontext.Simple.FromSql("exec dbBackup");
return OK(q);
}