这里有一个棘手的问题,我用微风,实体框架和日期时间字段。Breeze乐观并发异常保存日期时间
由于在输入和离开微风系统时添加了当前微秒的日期字段,因此在保存实体时,我得到了一个乐观的并发异常。
因此,实体框架认为别的东西已经编辑了数据库,因为它的原始值不再等于数据库中的数据(因为微秒值是现场编制的)。 SQL像产生如下:
exec sp_executesql N'UPDATE [dbo].[Profiles] SET [DOB] = @0, [TotalTime] = @1, [Modified] = @2 WHERE (([Id] = @3) AND ([DOB] = @4)) ',N'@0 datetime2(7),@1 float,@2 datetime2(7),@3 uniqueidentifier,@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年6月22日15:21:01.5320000但是保存的日期是在事实上2015年6月22日15 :21:01.533。 相差1毫秒。
我不确定这是为什么?
目前试图实现的修复程序是将此函数添加到我的应用程序的main.js中。
breeze.DataType.parseDateFromServer = function(source){ var dt = moment(source).toDate(); dt.setMilliseconds(0); return dt; };
这似乎让我摆脱了这种束缚。