Breeze 1.4.8错误:查询MergeStrategy.OverwriteChanges从不通知entityChanged或hasChanges

时间:2014-02-26 11:38:01

标签: breeze

当我用MergeStrategy.OverwriteChanges重新查询我唯一的脏实体时,管理器说hasChanges为true,即使entityState没有改变。这是因为entityChanged& hasChangesChanged永远不会发布。

查看mergeEntity中的源代码(第14258行),它的目标代码将永远无法正常工作,因为它在更新后测试实体状态&它测试isUnchanged函数的存在而不是它的返回值。

我认为它应该像

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);
    }

1 个答案:

答案 0 :(得分:0)

截至Breeze 1.4.9(或更高版本),现已上市,此问题已修复。并感谢您找到它。

相关问题