C# Breeze:SaveChanges客户端不调用SaveChanges服务器-仍然。执行后成功

C# Breeze:SaveChanges客户端不调用SaveChanges服务器-仍然。执行后成功,c#,.net,angularjs,breeze,C#,.net,Angularjs,Breeze,我不是在寻找基于代码的解决方案,而是对遇到的问题有一个解释 对于我正在开发的应用程序,后端是我的地盘,我的同事负责前端。我的同事离开时没有任何文档可以帮助我解决这个问题,因此我请求StackOverflow提供一些帮助 应用程序正在运行,除了一个位之外,其他一切都正常工作。在应用程序中的某一点上,客户端breeze调用SaveChanges方法,该方法(应用程序中的任何其他地方)在服务器上触发SaveChanges方法。在这个特定的实例中,SaveChanges方法返回.success并在控制台

我不是在寻找基于代码的解决方案,而是对遇到的问题有一个解释

对于我正在开发的应用程序,后端是我的地盘,我的同事负责前端。我的同事离开时没有任何文档可以帮助我解决这个问题,因此我请求StackOverflow提供一些帮助

应用程序正在运行,除了一个位之外,其他一切都正常工作。在应用程序中的某一点上,客户端breeze调用SaveChanges方法,该方法(应用程序中的任何其他地方)在服务器上触发SaveChanges方法。在这个特定的实例中,SaveChanges方法返回.success并在控制台中传递(自定义?)通知,通知已保存更改但是,服务器没有收到任何呼叫,在网络日志中我没有看到任何呼叫。你能给我指出一个可能导致这种情况的方向吗?这样我就可以理解未来的问题了?提前谢谢

function saveChanges(request, options, onSuccess, onFailure) {
        if (options) {
            if (!options.hasFlight) {
                _.forEach(request.FlightRequests, function (val) {
                    removeFlight(request, val, true);
                });
            }

            if (!options.hasFerry) {
                _.forEach(request.FerryRequests, function (val) {
                    removeFerry(request, val);
                });
            }

            if (!options.hasEurotunnel) {
                _.forEach(request.EuroTunnelRequests, function (val) {
                    removeEurotunnel(request, val);
                });
            }

            if (!options.hasRentalCar) {
                _.forEach(request.RentalCarRequests, function (val) {
                    removeRentalcar(request, val);
                });
            }

            if (!options.hasTaxi) {
                _.forEach(request.TaxiRequests, function (val) {
                    removeTaxi(request, val);
                });
            }

            if (!options.hasAccommodation) {
                _.forEach(request.Accommodations, function (val) {
                    removeAccommodation(request, val);
                });
            }
        }

        return manager.saveChanges()
            .then(saveSucceeded)
            .catch(saveFailed);

        function saveSucceeded(result) {
            console.log('Successfully saved all changes');
            onSuccess(result);
        }

        function saveFailed(error) {
            var reason = error.message;
            var detail = error.detail;

            if (error.entityErrors) {
                handleSaveValidationError(error);
            } else if (detail && detail.ExceptionType &&
                detail.ExceptionType.indexOf('OptimisticConcurrencyException') !== -1) {
                reason = 'Another user, perhaps the server itself, may have deleted '
                + 'the request you are currenty working on. Please try saving again, '
                + 'or reload this web page.';
            } else {
                reason = 'Failed to save changes: ' + reason + ' You may have to reload this web page.';
            }
            console.log(detail.ExceptionType);
            console.log(error, reason);

            onFailure(error, reason);
        }
    }

除了应用程序中的这一点之外,此代码在所有保存中都可以正常运行

如果在
manager.saveChanges()
行之前选中
manager.hasChanges()
,是否返回false?如果是,则不会向服务器发送任何请求(breezejs代码)


将hasChanges方法与saveChanges结合使用的可能性。

或者,您可以通过检查成功回调中返回的
saveResult
值来确认实际上没有保存任何内容。很容易发现没有人打电话。除此之外,
saveResult.entities.length
将为零。但是它肯定有更改。hasChanges()告诉我没有更改。。。这很令人困惑