Javascript Breeze EntityManager.executeQuery与expand-httpResponse数据不匹配?
我正在开发一个使用Breeze和Knockout的web应用程序。我有以下功能:Javascript Breeze EntityManager.executeQuery与expand-httpResponse数据不匹配?,javascript,entity-framework,knockout.js,breeze,Javascript,Entity Framework,Knockout.js,Breeze,我正在开发一个使用Breeze和Knockout的web应用程序。我有以下功能: function getArticle(id, articleObservable) { var query = EntityQuery.from('KbArticles') .where("articleId", "==", id) .expand("KbArticleType, KbSubject, KbArticleTags"); return manager
function getArticle(id, articleObservable) {
var query = EntityQuery.from('KbArticles')
.where("articleId", "==", id)
.expand("KbArticleType, KbSubject, KbArticleTags");
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
function querySucceeded(data) {
if (articleObservable) {
articleObservable(data.results[0]);
}
log('Retrieved [Article] from remote data source', data.results.length, true);
}
}
KbArticles实体和KbArticleTags实体之间存在1对多关系。此函数的目标是获取特定文章以及与该文章相关联的标记列表。该函数成功执行,我得到了其他两个扩展实体的数据-它们是1对1,但是,我在data.results中得到了一个空数组,用于kbarticle标记。有趣的是,标记填充在data.httpResponse中:
因此,看起来数据是通过线路传输的,但它并没有到达querySucceeded函数中的结果。我试图通过breeze代码来确定httpResponse是如何映射到结果的,但很快就迷失了方向——我是一个javascript新手。是否有人有任何故障排除技巧来找出为什么扩展实体没有显示在结果中,而是返回到httpResponse中?或者我正在尝试做一些不受支持的事情?好的,因此无论出于何种原因,我可能有一天在测试时删除了它,但没有重新添加,KbArticleTag实体上缺少实体框架图中的导航属性: 我所要做的就是把它加回去,一切都按预期进行
您应该检查微风元数据。确保正确定义了一对多关系,并且所有属性名称完全匹配