LightSwitch HTML 中的日期时间文本框在保存时递增一小时

DateTime TextBox in LightSwitch HTML increments one hour on save

编辑 11-08-2015:我已确认此错误已在 2.5.3 中修复,自 2015 年 7 月 20 日起可通过 nuget 使用

编辑:微软确认这是一个错误,将在下一版本的 lightswitch < 2.5.3 (link)[=15= 中解决]

我有一个简单的 LightSwitch HTML 页面,其中包含数据绑定到 SQL 服务器日期时间字段 (UTC +1) 的日期时间文本框。

呈现页面时,会显示正确的日期。但是,当我使用

更新时
msls.application.applyChanges()  

我的 DateTime TextBox 值增加了一个小时,即使该值没有改变,但在数据库中设置了正确的日期。我试过使用 JS 解决这个问题,但我还没有找到好的解决方案。

我只是不明白为什么日期时间在加载时呈现正确,但更新后呈现不正确,即使值没有改变。如果它是一种或另一种方式,我可以绕过它,但现在一切都不一致了。

LightSwitch 真的与 datetime 如此不兼容吗?

编辑:发现其他遇到相同问题的人: https://social.msdn.microsoft.com/Forums/vstudio/en-US/90cd2036-0001-4f59-a2ad-a032dd04d9e1/html-date-picker-display-date-changing-on-save?forum=lightswitch&prof=required

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e12f24ad-bc16-410b-ab31-7189118d2b8b/ls-html-client-weird-date-issue?forum=lightswitch

打开 msls-2.5。2.js

找到这段代码:

entitySet._loadedEntities[entityData.__metadata.uri] = entity;
                    } else if (entityState === _EntityState.modified) {
                        originalEntityData = entityData.__original;
                        $.each(entityDetails.properties.all(), function (j, property) {

您需要添加:convertDatesToLocal(changeResponse.data);

示例:

entitySet._loadedEntities[entityData.__metadata.uri] = entity;
                        } else if (entityState === _EntityState.modified) {
                            convertDatesToLocal(changeResponse.data);

                            originalEntityData = entityData.__original;
                            $.each(entityDetails.properties.all(), function (j, property) {

希望对您有所帮助。