2

我正在尝试保存使用经典 WEBAPI ODATA 服务加载的实体。

当在客户端调用 saveChanges 时,会找到修改后的实体,然后代码进入“createChangeRequests”,并且由于 entityState 被修改,它进入函数:

 function updateDeleteMergeRequest(request, aspect, prefix) {
    var extraMetadata = aspect.extraMetadata;
    var uri = extraMetadata.uri;
    if (__stringStartsWith(uri, prefix)) {
        uri = uri.substring(prefix.length);
    }
    request.requestUri = uri;
    if (extraMetadata.etag) {
        request.headers["If-Match"] = extraMetadata.etag;
    }
}

但是它在第二行引发异常,因为 extraMetadata 为空。这应该来自哪里?属性 extraMetadata 甚至不存在于“方面”......

微风确实有我的模型的元数据,因为我可以加载实体。只是我无法保存。

4

2 回答 2

1

第 13318 行(breeze.debug.js):

    function mergeEntity(node, mappingContext, meta) {
      node._$meta = meta;
      meta.extra = node.__metadata;//added
      var em = mappingContext.entityManager;
于 2013-08-31T14:10:29.260 回答
0

我刚刚偶然发现了 Breeze 1.4.13 的同样问题。我通过在第 14396 行添加 meta.extraMetadata = node.__metadata 解决了这个问题

function mergeEntity(mc, node, meta) {
    node._$meta = meta;
    meta.extraMetadata = node.__metadata;
    var em = mc.entityManager;
于 2014-06-05T11:08:20.970 回答