我正在尝试保存使用经典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。这应该来自哪里?属性extraMetadata甚至不存在于'aspect'....
breeze确实有我模型的元数据,因为我可以加载实体。只是我无法拯救。
答案 0 :(得分:1)
第13318行(breeze.debug.js):
function mergeEntity(node, mappingContext, meta) {
node._$meta = meta;
meta.extra = node.__metadata;//added
var em = mappingContext.entityManager;
答案 1 :(得分:0)
我只是通过Breeze 1.4.13解决了同样的问题。我通过在第14396行
中添加meta.extraMetadata = node .__元数据来解决了这个问题function mergeEntity(mc, node, meta) {
node._$meta = meta;
meta.extraMetadata = node.__metadata;
var em = mc.entityManager;