javascript - Breeze js - 如何从 JSON 字符串创建实体并将其导入到 Breeze 缓存中

标签 javascript json entity-framework asp.net-web-api breeze

我正在开发一个移动单页网站,该网站使用 Breeze js、Angular JS、Web API、 Entity Framework 等。

为了优化网站,我将 Breeze 元数据包含在捆绑的 JavaScript 中,其中包含网站所需的所有其他 JavaScript。理想情况下,我希望浏览器请求的只是index.html,它应该包含应用程序运行所需的所有内容,包括捆绑和缩小的内联样式和JavaScript。

但是,正如 Breeze 元数据对于网站的运行非常重要并因此嵌入到捆绑的 JavaScript 中一样,还必须存在一个必需的复杂实体(对某些其他实体具有一些深层导航属性)使网站功能齐全。我想将该实体及其引用的所有实体也嵌入到捆绑的 JavaScript 中。我怎样才能做到这一点?

我始终可以创建一个 JSON 字符串来表示该实体及其引用的所有实体。然后将该 JSON 字符串与其余字符串一起嵌入到捆绑的 JavaScript 中。但是,如何使用嵌入在 JavaScript 中的实体 JSON 字符串轻松地将这个复杂的实体导入到 Breeze 实体系统中?或者是否有更好的解决方案可以用复杂的实体预加载 Breeze 实体系统,而无需从服务器发出对该实体的请求?

我还想避免编写服务器代码来吐出在客户端上创建实体的 JavaScript。

最佳答案

最简单的方法是在 EntityManager.createEntity 调用中使用“初始化程序”参数。

查看 http://www.breezejs.com/documentation/creating-entitieshttp://www.breezejs.com/sites/all/apidocs/classes/EntityManager.html#method_createEntity

这个调用看起来是这样的。

myEntityManager.createEntity("Employee", { lastName: Smith", firstName: "John" });

因此,根据您的情况,您可以尝试:

var initialValues = JSON.parse(json);
myEntityManager.createEntity("Employee", initialValues);

根据您的用例,您可能还想设置这个新创建的实体的“entityState”。

关于javascript - Breeze js - 如何从 JSON 字符串创建实体并将其导入到 Breeze 缓存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23530234/

相关文章:

json - 将任何 JSON 解析为 JValue 而不指定案例类

ios - 不支持的 URL Swift 5

java - 带选择框的 Struts2 jQuery 自动完成器

c# - 带有自引用表的 EF 和 Linq

entity-framework - 在 Entity Framework 中查询 DbContext.Set(TypeVariable)

javascript - 仅更新 MongoDB 中的某些子文档

javascript - 测试两条线是否相交 - JavaScript 函数

c# - 从 VS C# 创建 Azure SQL 数据库时设置服务层级

javascript - 尝试从索引中的状态数组进行拼接,但最终却从第一个索引到最后一个索引进行拼接

javascript - 如何从客户端安全地写入 Firebase?