Breeze 1.4.8 Bug:查询Mergestrategy.overWriteChanges从未通知EntityChanged或HasCanges
-
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(或更高版本),现在可用,这已修复。并且谢谢你找到它。
不隶属于 StackOverflow