我正在尝试遍历列表并对列表中的每个项目执行存储过程。

foreach(value in values) {
    Context.Database
        .ExecuteSqlCommand(
            "sp_ProcedureName @value1, @value2, @value3",
            new SqlParameter("@value1", value.value1.ToString()),
            new SqlParameter("@value2", value.value2.ToString()),
            new SqlParameter("@value3", value.value3.ToString()));
}

我不断收到以下错误:



我也尝试使用异步方法。但这似乎不起作用。有什么我想念的吗。或者不可能在循环内运行存储过程?

最佳答案

也许填充 values 的 db 调用已经打开了一个事务,停止了内部调用功能。

尝试在填充 .ToList() 的调用中使用 values 以首先预加载所有值。

关于c# - Entity Framework 在循环中执行存储过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47785961/

10-12 14:23