考虑下面的代码片段... WebApi控制器元数据方法在下面的executeQuery中都被调用...为什么?
谢谢, 特拉维斯
var manager = (typeof options.breezeController !== 'undefined') ? options.breezeController : Mosaic.Global.defaultBreezeManager();
var query = breeze.EntityQuery
.from("GetColonies")
//.select("VIVLINE_GUID, VIVLINE_NAME")
.orderBy("VIVLINE_NAME");
manager.executeQuery(query);
manager.executeQuery(query)
.then((data) => {
this.viewModel.items.removeAll;
this.prepData(data.results);
this.viewModel.setSelectedValue(selectedModel);
});
答案 0 :(得分:2)
Breeze在每次查询之前检查客户端上是否存在针对给定服务的元数据。如果元数据不存在,那么它将在执行查询之前请求它。
我猜你正在猜测的是,两个查询都会在返回元数据之前启动。这将导致多次获取元数据。但是,一旦它确实失效,你不应该再看到任何进一步的请求。
一个建议是在任何查询之前强制加载元数据,即
manager.fetchMetadata().then(function() {
manager.executeQuery(query1);
manager.executeQuery(query2);
}