【发布时间】:2014-05-24 02:51:23
【问题描述】:
使用 VS 2013 运行 DocCode 示例的最新示例代码。出现以下错误。 任何想法为什么?我的目标是调试 localstorage 和 IndexedDB 并查看在此测试期间调试器中发生了什么。我需要提供概念证明并确保 BreezeJS 可以正确使用 IndexedDB 存储。
System.Exception 未被用户代码处理
H结果=-2146233088
Message=Store 更新、插入或删除语句影响了意外数量的行 (0)。自加载实体后,实体可能已被修改或删除。刷新 ObjectStateManager 条目。
来源=Breeze.ContextProvider.EF6
堆栈跟踪:
在 Breeze.ContextProvider.EF6.EFContextProvider1.SaveChangesCore(SaveWorkState saveWorkState)
at Breeze.ContextProvider.ContextProvider.OpenAndSave(SaveWorkState saveWorkState)
at Breeze.ContextProvider.ContextProvider.SaveChanges(JObject saveBundle, TransactionSettings transactionSettings)
at DocCode.DataAccess.TodosRepository.SaveChanges(JObject saveBundle) in c:\Users\username\Downloads\breeze-runtime-plus-1.4.12\Samples\net\DocCode\DocCode.DataAccess.EF\TodosRepository.cs:line 27
at DocCode.Controllers.TodosController.SaveChanges(JObject saveBundle) in c:\Users\username\Downloads\breeze-runtime-plus-1.4.12\Samples\net\DocCode\DocCode\Controllers\TodosController.cs:line 30
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary2 参数,CancellationToken cancelToken)
内部异常:System.Data.Entity.Infrastructure.DbUpdateConcurrencyException
H结果=-2146233087
Message=Store 更新、插入或删除语句影响了意外数量的行 (0)。自加载实体后,实体可能已被修改或删除。刷新 ObjectStateManager 条目。
来源=实体框架
堆栈跟踪:
在 System.Data.Entity.Internal.InternalContext.SaveChanges()
在 System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
在 System.Data.Entity.DbContext.SaveChanges()
在 Breeze.ContextProvider.EF6.EFContextProvider1.SaveChangesCore(SaveWorkState saveWorkState)
InnerException: System.Data.Entity.Core.OptimisticConcurrencyException
HResult=-2146233087
Message=Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
Source=EntityFramework
StackTrace:
at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.ValidateRowsAffected(Int64 rowsAffected, UpdateCommand source)
at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()
at System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.<Update>b__2(UpdateTranslator ut)
at System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.Update[T](T noChangesResult, Func2 updateFunction,布尔 throwOnClosedConnection)
在 System.Data.Entity.Core.EntityClient.Internal.EntityAdapter.Update(布尔 throwOnClosedConnection)
在 System.Data.Entity.Core.Objects.ObjectContext.b__33()
在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass28.<SaveChanges>b__25()
at System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func1 操作)
在 System.Data.Entity.Core.Objects.ObjectContext.SaveChanges(SaveOptions 选项)
在 System.Data.Entity.Internal.InternalContext.SaveChanges()
内部异常:
【问题讨论】:
-
写入数据库时看起来像并发错误。您是否同时使用多个连接写入数据库?
-
现在,它会在出现上述错误之前保存到本地存储,但不会保存到 indexeddb。 indexeddb 最近有测试过吗?这对我来说是必需品。我使用以下内容尝试写入 indexeddb。 ---> window.indexedDB.setItem("mydb -idexedDB", changesExport);
-
不,我解压缩了演示并运行它,甚至在我添加 indexeddb 数据之前它就失败了。版本--------breeze-runtime-plus-1.4.12
-
我再次解压了这个版本的breeze-runtime-plus-1.4.12 并运行它,得到了同样的错误。