當我用MergeStrategy.OverwriteChanges查詢唯一髒實體時,管理員說hasChanges爲true,即使entityState未更改。這是因爲entityChanged & hasChangesChanged從不發佈。Breeze 1.4.8錯誤:查詢MergeStrategy.OverwriteChanges從不通知entityChanged或hasChanges
綜觀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);
}
感謝您的反饋意見,我會盡量在今天晚些時候(或明天)再看看。 –