Javascript Breeze.js使用noTracking而不是unwrapping实体

Javascript Breeze.js使用noTracking而不是unwrapping实体,javascript,knockout.js,breeze,Javascript,Knockout.js,Breeze,我试图在本地执行查询。我将.noTracking()链接到查询,但它没有展开实体 var result = breeze.EntityQuery .from('ResourceName') .where('id', '==', 1) .expand('OtherEntities') .noTracking() .using(manager) .executeLocally(); 我使用fromEntities、ExecuteQueryLocal和

我试图在本地执行查询。我将.noTracking()链接到查询,但它没有展开实体

var result = breeze.EntityQuery
    .from('ResourceName')
    .where('id', '==', 1)
    .expand('OtherEntities')
    .noTracking()
    .using(manager)
    .executeLocally();
我使用fromEntities、ExecuteQueryLocal和一系列其他变体尝试了相同的查询,但我无法返回未包装的实体

我可以使用Select,但我宁愿不使用它,因为我也在使用EXPLAND

EntityQuery是否仅在点击服务器时与noTracking()一起工作?


使用Breeze.js 1.4.7和Knockout 3.0是的,没错,EntityQuery noTracking方法仅在查询服务器时适用。我们将更新文档,使其更清晰

这不是限制。在本地执行查询意味着在缓存中查找实体。“无跟踪”表示“我不希望缓存中有实体”。在实体不应该位于的位置查询实体是一种矛盾。

没错,但是具有扩展属性的未包装POJO将非常强大。我想了解这种情况下“非常强大”。也许这可以激发一个特性。你也看过了吗?那里可能有一些有用的线索。是的,我有,很多次:)。想象一个具有导航属性的深嵌套实体树。联盟有球队,球队有球员。如果breeze开发人员希望将这些对象加载到第三方网格中,或者使用select()对对象进行序列化以进行自定义保存,则要困难得多。创建自定义保存序列化函数当然是可能的,但老实说,我还没有让它正常工作。给我更多的作业。我们一直在考虑一种方法来“打开”任何实体。i、 e.返回原始js对象的集合。它不会以任何方式影响EntityManager缓存。如果我们有这个,它对您的用例有用吗?非常有用。我想很多开发人员都在寻找从各种对象图中恢复原始JSON的方法,但我花了大概3天的时间来尝试,但都没有用。toJS()可以处理一些网格之类的东西,但是假设我正在实现一个自定义保存,我想将JSON传递回服务器——所有AJAX调用都会在entityType和entityAspect上打嗝。删除一个或两个属性会在Breeze尝试更新为新值时(当$interceptor触发时)在Breeze中引发错误。2016年11月,Breeze默认保存没有维护结构(至少我看到)的选项。如果这是我们目前正在将breeze.js重写为typescript(完全向后兼容)的文档中的话,那就太好了,所以我将在新文档中包含它。谢谢。