Datetime Breeze乐观并发异常保存日期时间
这里有一个关于breeze、实体框架和datetime字段的棘手问题 我在保存实体时遇到乐观并发异常,因为日期字段在进入和离开系统时都添加了当前微秒 因此,实体框架认为其他东西编辑了数据库,因为它的原始值不再等于数据库中的值(因为微秒值是在现场生成的)。 生成了如下类似的SQL: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))
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”,这导致它以这种方式进行了大量验证。 将其改回“无”可以解决此问题