我的C#代码如下所示:
using (var context = new MyDataContext()) numberOfEffectedRows = context.MySPname(this.ID);
在大多数情况下(99.9%)执行,这很好.但是,有时它会因此错误而失败:
system.invalIDOperationException: InvalID operation. The connection is closed. at System.Data.sqlClIEnt.sqlInternalConnectionTds.ValIDateConnectionForExecute(sqlCommand command) at System.Data.sqlClIEnt.sqlInternalTransaction.Rollback() at System.Data.sqlClIEnt.sqlInternalTransaction.dispose(Boolean disposing) at System.Data.sqlClIEnt.sqlTransaction.dispose(Boolean disposing) at System.Data.Entity.Infrastructure.Interception.Internaldispatcher`1.dispatch[TTarget,TInterceptionContext](TTarget target,Action`2 operation,TInterceptionContext interceptionContext,Action`3 executing,Action`3 executed) at System.Data.Entity.Infrastructure.Interception.DbTransactiondispatcher.dispose(DbTransaction transaction,DbInterceptionContext interceptionContext) at System.Data.Entity.Core.EntityClIEnt.EntityTransaction.dispose(Boolean disposing) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func,IDbExecutionStrategy executionStrategy,Boolean startLocalTransaction,Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectContext.<>c__displayClass4b.<ExecuteFunction>b__49() at System.Data.Entity.sqlServer.DefaultsqlExecutionStrategy.Execute[TResult](Func`1 operation) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteFunction(String functionname,ObjectParameter[] parameters) at ***.MyDataContext.MySPname(Nullable`1 ID) in *** at ***.DoSomething() in ***
发生这种情况时:
>我不知道为什么会这样.在我看来,这似乎是随机的.
>我不知道我的“MySPname”是否被执行了.
有人知道为什么会这样,以及我怎么知道我的存储过程是否被执行?
解决方法 连接已关闭是由于超时,因此建议您检查连接字符串中的连接超时connectionString="Data Source=..;Initial Catalog=;Persist Security Info=..;User ID=..;Password=..;Connect Timeout=.."
对于诊断,我建议您运行sql Server Profiler
总结以上是内存溢出为你收集整理的c# – 实体框架:InvalidOperationException:无效的 *** 作.连接已关闭全部内容,希望文章能够帮你解决c# – 实体框架:InvalidOperationException:无效的 *** 作.连接已关闭所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)