使用Breeze.js加上Asp.net Web Api(使用Entity Framework 6 Code First)我无法在调用executeQuery(查询)后获取实体。更具体地说,这是我在javascript中的调用:
entityManager.executeQuery(query)
.then(function(data){
alert(data.results.length); // length > 0 --> has data !!
alert(entityManager.getEntities().length); // == 0 has no data WHY?!!
});
虽然executeQuery(查询)确实命中了服务器上的api控制器而将数据发送到客户端,因为 data.results.length> 0 ,看起来数据不会被缓存,因为 entityManager.getEntities()。length == 0 。如果没有缓存数据,我如何跟踪更改?我错过了什么吗? 在谷歌搜索后我发现这篇文章http://forum.ideablade.com/forum_posts.asp?TID=3739&title=entity-manager-cache-not-working,据说简单地说,Breeze要求模型和dbcontext在同一名称空间中。这是问题吗?因为我无法更改我的命名空间(dbcontext和api控制器来自外部库,我没有控制悬停)在这种情况下可以使用哪种解决方法?
答案 0 :(得分:0)
最可能的原因是服务器返回的对象不是实体数据......至少不是从Breeze客户端的角度来看。
也许您可以向我们展示您的查询。
查看Breeze文档中的"Query Result Debugging" topic。