【发布时间】:2014-04-28 23:20:52
【问题描述】:
此 [MetadataStore.FetchMetadata] 调用由 Breeze 在尝试对远程服务执行首次查询之前自动进行
但我正在打这样的电话:
function getBags() {
var bags;
var query = breeze.EntityQuery.from('Bags');
return manager.executeQuery(query).then(querySucceded, _queryFailed);
function querySucceded(data) {
bags = data.result;
logSuccess("Retrieved Bag Data")
return bags;
}
}
function _queryFailed(error) {
logError(config.appErrorPrefix + "Query Failed: " + error.message);
throw error;
}
当我这样做时,我得到了这个错误:
“无法通过名称找到‘类型’:‘Bag:#DataAccess’。请务必先执行查询或调用 fetchMetadata。”
作为_queryFailed中error.message的值。
注意:我知道它正在连接到我的 OData 服务,因为如果我为查询添加随机的东西,我会得到一个找不到的资源:
未找到片段“Bagsasdfas”的资源。;
我正在使用 HotTowel.Angular 和 HotTowel.Angular.Breeze nuget 包。唯一的区别是我直接连接到 WCF 数据服务 (OData)。
在我调用查询之前我确实有这些调用:
breeze.config.initializeAdapterInstances({ dataService: "OData" });
breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true);
有人知道为什么 Breeze 不会为此自动获取元数据吗?
【问题讨论】:
-
你试过调用 fetchMetadata 吗?
标签: javascript odata breeze wcf-data-services