【发布时间】:2014-02-25 12:02:11
【问题描述】:
我从 EF 调用一个存储过程,它本身执行一个系统存储过程。
public virtual int MyFunctionImport()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("MyFunction"); //calls a sql server system procedure
}
现在我收到一个错误,因为 EF 围绕函数执行包装了事务:
该过程不能在事务中执行。
可以做些什么来解决这个问题?
【问题讨论】:
-
如果您已经在 EF 中导入了存储过程,并对其进行了函数映射,则无需使用 ExecuteFunction 执行它 - 您可以像这样使用它:
return this.ObjectContext.up_MyStoredProcedure(someparameter)...以这种方式执行时仍然会导致相同的错误吗? -
我无法构建命令,出现错误:“dbContext 不包含 ObjectContext 的定义”
标签: sql-server entity-framework stored-procedures transactions system