Breezejs EntityManager MetadataStore 和 fetchEntityByKey

2024-03-21

我有一个 SPA 应用程序 (durandaljs),并且有一条特定的路线,可以在其中映射我想要获取的实体的“id”。

模板是“/#/todoDetail/:id”。

例如,“/#/todoDetail/232”或“/#/todoDetail/19”。

在 viewmodel 的激活函数中,我获取了路线信息,以便获取 id。然后,我创建一个新的 tweetjs EntityManager 实例来获取具有给定 id 的实体。

问题是当我调用 manager.fetchEntityByKey("Todos", id) 时,EntityManager 还没有来自服务器的元数据,因此它抛出异常“无法通过名称找到“类型”:Todos”。

仅当我在调用 fetchEntityByKey 之前首先对存储执行查询 (manager.executeQuery) 时,它才有效。

这是预期行为还是错误?有没有办法在 EntityManager 实例化期间自动获取元数据?

注意:我相信在我的例子中很难使用共享的EntityManager,因为我想允许用户直接在浏览器上键入路线。

EDIT:作为临时解决方法,我正在这样做:

BreezeService.prototype.get = function (id, callback) {
    var self = this;

    function queryFailed(error) {
        app.showMessage(error.message);
        callback({});
    }

    /* first checking if metadatastore was already loaded */

    if (self.manager.metadataStore.isEmpty()) {
        return self.manager.fetchMetadata()
        .then(function (rawMetadata) {
            return executeQuery();
        }).fail(queryFailed);
    } else {
        return executeQuery();
    }

    /* Now I can fetch */
    function executeQuery() {
        return self.manager.fetchEntityByKey(self.entityType, id, true)
                        .then(callback)
                        .fail(queryFailed);
    }
};

你已经了解了fetchMetadata。这很重要。如果您的应用程序可以在不发出查询的情况下开始,则必须使用fetchMetadata并等待它返回,然后才能直接在缓存上执行任何操作(例如,在回退到数据库查询之前通过缓存中的键检查实体)。

但我感觉到还有其他事情发生,因为你提到了多名经理。默认情况下,新经理不知道任何其他经理的元数据。但你知道吗您可以在管理人员之间共享单个元数据存储?你可以。

我经常做的事情(您将在 DocCode 示例中的元数据测试中看到它)是获取应用程序的元数据存储,编写一个 EntityManager 工厂函数来使用该元数据存储创建新的管理器,然后每当我需要时使用该工厂我正在创建新的管理器...就像您在启动 ViewModel 来查看 TodoDetail 时所做的那样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Breezejs EntityManager MetadataStore 和 fetchEntityByKey 的相关文章

  • Durandal 2.0 - 用于嵌套菜单的子路由器?

    我正在构建一个应用程序 并希望显示一个 2 层菜单 并且两层始终可用 杜兰达尔2 0介绍了他们的新路由器 它支持 子路由器 可以更轻松地进行深度链接 我的问题 我可以永久加载我的 子 导航路线 并在父级不活动时呈现子菜单 还是 子路由器 设
  • 如何使 SPA SEO 可抓取?

    我一直在研究如何基于 google 制作一个可以被 google 抓取的 SPA指示 尽管有很多一般性解释 但我找不到任何带有实际示例的更全面的分步教程 完成此操作后 我想分享我的解决方案 以便其他人也可以使用它并可能进一步改进它 我在用M
  • 使用 requirejs 注入 kendo ui

    关于 kendo ui 和 requirejs 的文档似乎遗漏了一些东西 他们告诉我如何使用 kendo web min 其中包含所有内容 http www kendoui c om blogs teamblog posts 13 05 0
  • durandal 优化器在 Visual Studio 中将其构建为构建后过程时引用了错误的路径

    我在 Visual Studio 中设置了一个构建后事件 以使用 durandal 的优化器 使用 Nodejs 来构建用于生产的 main built js 文件 收到错误消息说找不到 main built js 我相信这是因为它没有正确
  • 如何在 Web Api 中手动执行 Breeze 过滤器?

    我想使用一些外部服务器端逻辑来修改查询结果的属性 为此 我需要应用 Breeze 查询选项 修改结果集并返回它 我基本上知道如何申请OdataQueryOptions我的查询 但我不想错过 BreezeJS 所做而 Web Api 的 OD
  • select 中的此选项不正确

    我正在尝试将 Typescript 与 Durandal 一起使用 我正在尝试使用打字稿制作入门示例 它适用于大多数方法和类 然而 在下面的 Flickr 类中 我在 select 方法中遇到了问题 当调用此方法时 似乎这不是 Flickr
  • 微风:为什么继承自Breeze.Sharp.BaseEntity?

    我们已经开始考虑使用 BreezeSharp 因为我们有一个 WebAPI ODATA 服务 我们希望在 ASP NET 站点上重复使用该服务 不涉及 javascript 只涉及纯 C 不幸的是 我们刚刚注意到 根据文档 我们所有的模型实
  • 为什么我的 Breeze.js 实体没有创建 ko.observables?

    我使用的 Breeze js 没有服务器端组件 并使用以下代码在客户端创建实体 根据沃德的要求 我简化了一切 并添加了更多信息 我的 MetaDataStore 配置功能 function configureMetadataStore me
  • Breeze.js 混合 DTO 和实体

    在沃德的文章中 Breeze 服务器 随心所欲 典型的业务应用程序至少有 200 个领域模型 类型 90 以上的时间我通过网络发送的数据的形状 电线与我的商业模型中实体的形状相同 当客户实体的形状与实体的形状不一致时 服务器端业务实体 我可
  • 微风错误:非法构造 - 使用“或”组合检查

    我遇到了这个微风错误 非法构造 使用 或 来组合检查 在 Chrome 上加载实体的编辑页面时 当我刷新页面时 错误消息不再出现 此错误在我的网站上随机 不规则地发生 我无法使用指定的场景重现它 只是随机遇到它 我在 Breeze 代码中看
  • 微风:getEntityGraph 中出现意外错误

    我使用 getEntityGraph 扩展 它工作正常 但在以下情况除外 添加新实体 不要保存它并在实体上调用 setDeleted 通过将实体和 np 集合作为参数传递来调用 getEntityGraph 当调用 makePathSegm
  • KendoUI 集成到 Durandal JS

    我正在构建一个phonegap 应用程序 并计划使用 Telerik 的 Kendo UI 框架来生成 UI Telerik Kendo UI 已经有一个 MVVM 实现 我想使用它而不包括 Knockout JS 这是支持的东西 还是 D
  • 具有多语言支持的 Durandal(淘汰赛)应用程序

    我正在为我正在开发的应用程序建立多语言支持 经过一些研究并阅读SO 国际化最佳实践 https stackoverflow com questions 228835 best practice javascript and multilan
  • angular-ui-select2和breezejs:输入2个字符后加载ajax列表

    我有一个项目 我使用 BreezeJS 从我的网络服务器获取数据 我将 AngularJS 与 ui select2 模块一起使用 目前 当我加载页面时 breezejs 会调用以获取我转储到作用域变量中的数据 从那里 select2 可以
  • Breeze:EFContextProvider/Breeze 控制器和服务层

    使用 Breeze 时 我想知道如何将其与处理电子邮件通知 审核日志 业务验证 即客户必须存在 等事务的服务层集成 例如 假设有以下场景 public class SalesAppRepository private readonly EF
  • 非标量导航属性未填充“nodb”概念

    我正在使用 Breeze 1 4 8 并尝试将键 值对列表作为具有 nodb 概念的导航属性 我有两个简单的模型 function configureKeyValuePairDtoType metadataStore var prop va
  • 无论我如何尝试,System.Web.Http 引用默认为 4.0 版本

    我在我的项目中使用 BreezeApi NuGet 包 它位于 Visual Studio 2013 中 我收到这个错误 错误 41 程序集 Breeze WebApi2 Version 1 4 0 0 Culture neutral Pu
  • 具有多个视图的 Durandal 小部件

    我正在使用 Durandal 开发 SPA 并且我创建了一个用于显示特定页面组件的小部件 继杜兰达尔文档 http durandaljs com documentation Creating A Widget 小部件位于app widget
  • 使用 r.js 打包使用“文本”加载视图的 SPA 应用程序

    我正在尝试使用 grunt 将 SPA 应用程序 requirejs durandal 2 knockout 构建到单个 main build js 文件中 并且我遇到了 durandal 用于加载我的 文本 插件的严重问题意见 在开发中
  • 如何在 Durandal 中为我的 shell 视图模型使用类?

    我正在查看 Hot Towel 模板 并试图让它在 TypeScript 中工作 但我在转换 shell 视图模型时遇到了问题 我正在尝试将其转换为 TS 对我来说更有意义的是它应该是一个类 而不是简单地导出如图所示的函数here http

随机推荐

  • C/Unix 的参数解析助手

    我知道以下情况 尊者getopt 3 扩展的getopt long glibc s argp http www gnu org software libtool manual libc Argp htmlUnix 风格参数向量的解析器 po
  • 在类路径中包含 jar 文件

    我正在从引用一些外部 jar 文件的批处理文件运行 java 程序 我如何在我的批处理文件中包含这些 jar 文件 请帮助 看看Sun的官方文档 设置类路径 http download oracle com javase 6 docs te
  • 确定表/数据库的字符集?

    可以运行什么 T SQL 命令来查找 SQL Server 中表或数据库的字符集 编辑 服务器版本 Microsoft SQL Server 2008 R2 RTM 10 50 1600 1 X64 您可以使用检查版本 SELECT VER
  • 如何获取span标签的值

    如何获取 span 标签的值并将其发送到我的表单中到另一个页面 span span 我需要将我的跨度标记小计的内容发送到另一个页面 我想将其保存到隐藏字段中 但我发现没有办法做到这一点 我用了这个 但没有成功 function getTot
  • 如何在 OpenglES 1.x 中实现阴影(在 iPhone 上)

    如何在我的 OpenglES 1 x 场景中实现阴影 我用谷歌搜索了几个小时 找不到任何有用的东西 我可以找到这个教程 http www paulsprojects net tutorials smt smt html 但没有成功将其移植到
  • 升级到 SDK 2.3.301 后,Service Fabric Actor 或服务随机变得无法访问

    从 Service Fabric SDK 2 0 135 升级到 2 3 301 后 我们开始遇到 Service Fabric actor 或服务无法访问的情况 尽管在 Service Fabric Explorer 中显示为正常运行 一
  • 无法获取 WorksheetFunction 类的 Match 属性

    我想做的是基于 CelloSht Input Cells Rows 7 我想在另一个Sheet的 periodSheet A列中找到匹配项 并根据给定的列获取相应的值 我尝试过结合使用 Index and Match去做这个 这 Index
  • 使用 .NET MVC 控制器操作作为 HTML 的源

    我正在尝试显示与数据库中的用户关联的图片 图片字段的数据类型是image 在页面上 不幸的是下面的代码无法做到这一点 HTML img src User Picture 1 控制器动作 public byte Picture int id
  • 字典理解中的操作顺序

    我遇到了以下有趣的构造 假设您有一个列表列表 如下所示 my list captain1 foo1 bar1 foobar1 captain2 foo2 bar2 foobar2 你想用它们创建一个字典0 index 元素是键 一个方便的方
  • React Native FlatList 列之间的分隔符

    我有一个包含多列的 FlatList
  • 如何使用自定义错误消息使概念失败 (C++20)

    概念非常适合查明代码行的错误 未满足约束条件 然而 我想知道是否可以在那里发布自定义信息消息 static assert 的优点正是这种可能性 用例 任何想要帮助用户弄清楚为什么某个表达式不满足约束的库 这是一个简单的例子 只是为了有一些代
  • 提交搜索时 ENTER 在 IE 中不起作用

    要执行全文搜索 用户只需将查询输入到简单的输入文本中 然后 一旦他们按下 ENTER 键 搜索本身就会开始 目前我们尝试这样解决 inputText 绑定到 sessionScope 变量myQuery 输入还有一个与其绑定的 OpenPa
  • 如何知道 soundpool 何时完成播放音频文件?

    我正在使用 soundpool 来播放我录制的文件 我只是想知道有什么方法可以知道 soundpool 何时完成播放 下面是我的工作代码 public void soundPool final float playbackSpeed 1 5
  • 尝试添加依赖项时出现 websocket 连接错误

    我目前正在尝试在 Electron 软件中使用 React 添加图形部分的图表 除了我添加了与按钮 部分 的交互 以根据用户对其中一个部分 变量 selectedSection 的点击在图表中插入不同的数据 所以我添加了useEffect
  • Capybara 匹配器用于确定按钮或链接的存在

    网页上的用户不区分 按钮 和 按钮样式的链接 有没有办法添加检查页面上是否存在 按钮或链接 例如水豚有步骤 page should have button Click me 它找不到按钮样式的链接 更新的答案 应该在 RSpec 3 0 中
  • 为什么我的 Spring @Autowired 字段为空?

    注意 这旨在成为常见问题的规范答案 我有一个春天 Service class MileageFeeCalculator 有一个 Autowired field rateService 但该字段是null当我尝试使用它时 日志显示 两个Mil
  • UIView drawRect 与 initWithFrame

    我有一个 UIView 其中添加了几个按钮作为子视图 目前我的按钮位于drawRect 中 我听说这是一个坏主意 因为drawRect可以被调用多次 我尝试将这些 UIButtons 移至 initWithFrame 但它们只是没有被绘制
  • Swift 2.2:不再导入 GCC_PREPROCESSOR_DEFINITIONS 常量

    The 本答案中描述的在 xcconfig 文件中分离 API 密钥的技术 https stackoverflow com a 32540064 569448不适用于 Swift 2 2由于错误 SR 909 https bugs swif
  • 如何从 C 扩展返回 Python 枚举?

    我正在为 Python 编写一个封装 C 库的 C 扩展 C 库有一些枚举类型 我已经编写了相应的IntEnums 用于这些 例如 from enum import IntEnum enum consts is a C extension
  • Breezejs EntityManager MetadataStore 和 fetchEntityByKey

    我有一个 SPA 应用程序 durandaljs 并且有一条特定的路线 可以在其中映射我想要获取的实体的 id 模板是 todoDetail id 例如 todoDetail 232 或 todoDetail 19 在 viewmodel