Breeze 1.4.8 Bug:查询Mergestrategy.overWriteChanges从未通知EntityChanged或HasCanges

StackOverflow https://stackoverflow.com//questions/22040184

  •  21-12-2019
  •  | 
  •  

当我用mergestrategy.overwrechanges reasery我唯一的脏实体时,管理员说哈斯昌是真的,即使EntityState不变。这是因为EntityChanged&HasChangesChangeed从未发表过。

在mergeentity(第14258行)中查看源(第14258行)的预期代码将永远不会工作,因为它在更新之后测试实体状态并测试了它的is短函数的存在而不是返回值。

我认为应该是

的东西
if (mergeStrategy === MergeStrategy.OverwriteChanges
        || targetEntityState.isUnchanged()) {
    var isTargetEntityStateUnchanged = targetEntityState.isUnchanged();

    ...

    // this is needed to handle an overwrite of a modified entity with an unchanged entity 
    // which might in turn cause _hasChanges to change.
    if (!isSaving && !isTargetEntityStateUnchanged) {
        em._notifyStateChange(targetEntity, false);
    }
.

有帮助吗?

解决方案

在Breeze 1.4.9(或更高版本),现在可用,这已修复。并且谢谢你找到它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top