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 が null であるため、2 行目で例外が発生します。これはどこから来たのですか?プロパティ 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 に答える