我在c# WepApi上使用PetaPoco,我必须执行删除许多表上的行的存储过程。要删除的行数是变量(可以是几个或太多),因此,有时PetaPoco会抛出超时异常。是否有可能使用PetaPoco"调用"存储过程并在过程完成之前关闭连接?存储过程不返回任何值,WebApi不需要知道它什么时候结束…
你需要的是触发一个后台任务并从WebApi请求返回。有几个选项可以运行后台任务,不要忘记使用
更改请求超时:HttpContext.Server.ScriptTimeout = 50 * 60; // 50 minutes
和PetaPoco命令超时使用:
var db = new Database(connectionStringName);
db.OneTimeCommandTimeout = 50 * 60; // 50 minutes
db.Execute( ... );