该MySqlTransaction已完成;它不再可用

时间:2019-07-18 10:14:54

标签: entity-framework

我们提供了wcf服务,iPad上的最终用户可以通过该服务发送订单。长期以来,它一直没有错误。从几天开始,我们通过邮件收到错误消息。我的.net Framework版本是4.6,EntityFramework版本是6.1.31219.0&Devart.Data.MySql.Entity.EF6.dll版本是8.6.714.0。错误来自IEnumerable.Any方法。我知道Entityframework在保存,更新和删除操作中自动管理事务。从Stack Trace看来,IEnumerable。任何人都在内部维护事务(内部调用ObjectContext.ExecuteInTransaction)。代码如下所示:

var device = _deviceRep.Get(Globals.CurrentDevice.UUID); if(Globals.CurrentCompany.DomainName!=“” &&!device.CompanyDevices.Any(cd => cd.CompanyId == Globals.CurrentCompany.Id && cd.DeviceId == device.Id)) {   ......
}

以下是异常详细信息

异常消息: 关闭提供程序连接时发生错误。有关详细信息,请参见内部异常。

内部异常消息: 该MySqlTransaction已完成;它不再可用。

堆栈跟踪:

在System.Data.Entity.Core.EntityClient.EntityConnection.StoreCloseHelper()在System.Data.Entity.Core.Objects.ObjectContext.ReleaseConnection()在System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction [ T](System.Data.Entity.Core.Objects.ObjectQuery 1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectQuery 1 forMergeOption的Func 1.GetResults(Nullable 1。<> c__DisplayClassb.b__9()在System.Data.Entity.Core.Objects.DataClasses处.EntityCollection 1.Load(List 1集合,MergeOption mergeOption),位于System.Data.Entity.Core.Objects.DataClasses.RelatedEnd.DeferredLoad(),位于System.Data.Entity.Core.Objects.DataClasses.EntityCollection 1.GetEnumerator() at System.Linq.Enumerable.Any[TSource](IEnumerable 1来源,Func`2谓词)位于c:\ nVision Office MVC \ Codebase \ nVision.WebService \ Core \ Modules \ Company \ Device \ WSDevice.svc中的nVision.Office.Core.Modules.Device.WSDevice.VerifyDevice()中。 c:\ nVision Office MVC \ Codebase \ nVision.WebService \ Global.asax.cs中的nVision.WebService.Global.VerifyClientAccess中的cs:line 154(布尔requireCompanyAuth,布尔requireDeviceAuth):nVision.Office.Modules.Order上的325行。 WSOrder.SaveOrder (订单头订单)在c:\ nVision Office MVC \ Codebase \ nVision.WebService \ Modules \ Order \ WSOrder.svc.cs:line 527

请让我知道发生这种情况的可能原因。需要您的帮助。

最佳问候 安息日

0 个答案:

没有答案