取消从Entity框架调用的存储过程

时间:2014-12-29 14:14:15

标签: c# sql-server entity-framework

我有一个应用程序触发多个作业来计算和更新给定日期范围内的销售记录。实体框架允许我们通过以下代码调用存储过程

Database.ExecuteSqlCommand(string sql, params object[] parameters);

这允许我们执行程序。无论如何取消长时间运行的存储过程

1 个答案:

答案 0 :(得分:1)

实体框架6具有ExecuteSqlCommandAsync方法,该方法支持使用取消令牌,可用于以正常方式取消任务,例如

var token = new CancellationTokenSource();
var t = db.Database.ExecuteSqlCommandAsync("WAITFOR DELAY '00:00:15'", token.Token);
// you can now use `token.Cancel` to cancel the SP.
t.Wait();

(要使其工作,我需要更改为使用.Net 4.5或更高版本。)