Datetime Breeze乐观并发异常保存日期时间

Datetime Breeze乐观并发异常保存日期时间,datetime,knockout.js,entity-framework-5,breeze,durandal-2.0,Datetime,Knockout.js,Entity Framework 5,Breeze,Durandal 2.0,这里有一个关于breeze、实体框架和datetime字段的棘手问题 我在保存实体时遇到乐观并发异常,因为日期字段在进入和离开系统时都添加了当前微秒 因此,实体框架认为其他东西编辑了数据库,因为它的原始值不再等于数据库中的值(因为微秒值是在现场生成的)。 生成了如下类似的SQL: exec sp_executesql N'UPDATE[dbo].[Profiles] 设置[DOB]=@0,[TotalTime]=@1,[Modified]=@2 其中(([Id]=@3)和([DOB]=@4))

这里有一个关于breeze、实体框架和datetime字段的棘手问题

我在保存实体时遇到乐观并发异常,因为日期字段在进入和离开系统时都添加了当前微秒

因此,实体框架认为其他东西编辑了数据库,因为它的原始值不再等于数据库中的值(因为微秒值是在现场生成的)。 生成了如下类似的SQL:

exec sp_executesql N'UPDATE[dbo].[Profiles]
设置[DOB]=@0,[TotalTime]=@1,[Modified]=@2
其中(([Id]=@3)和([DOB]=@4))
“,N'@0-datetime2(7),@1浮点,@2-datetime2(7),@3唯一标识符,@4-datetime2(7),@0='2015-06-22 15:21:43.4180000',@1=3210,@2='2015-06-22 15:22:52.7520000',@3='F944965E-9E18-E511-BF26-4CEB4272XXXX',@4='2015-06-22 15:21:01.5320000'

EF正在查找日期2015-06-22 15:21:01.5320000,但存储的日期实际上是2015-06-22 15:21:01.533。 差1毫秒

我不知道这是为什么

我目前试图实现的修复是将此功能添加到我的应用程序的main.js中

breeze.DataType.parseDateFromServer=函数(源){ var dt=力矩(源).toDate(); dt.setms(0); 返回dt; };


这似乎让我摆脱了这种束缚。

Doh!事实证明,有人将实体图中DOB字段的ConcurrencyMode设置为“Fixed”,这导致它以这种方式进行了大量验证。 将其改回“无”可以解决此问题