【问题标题】:Export breeze entities in the server side to json将服务端的微风实体导出为 json
【发布时间】:2015-12-10 03:02:38
【问题描述】:

我正在寻找一种将服务器端的微风实体导出到 json 字符串的方法,微风js 管理器可以从客户端导入该字符串。我查看了所有breeze APIs(公共和内部源代码),但我找不到实现这一目标的明显方法。通过在服务器端使用 BreezeSharp(一个 .NET 微风客户端)有可能获得所需的结果,但我想看看仅使用微风服务器 API 是否可以实现。

【问题讨论】:

  • 服务器响应带有 JSON 序列化实体的查询,客户端上的 EntityManager 将实体读取到其缓存中。这不是正常的微风查询场景吗?我错过了什么?
  • 嗨史蒂夫,不,你没有错过任何东西 :) 我想要实现的有点不同。我想将由外部事件(webhook)触发的一些更改作为 json 数据实时发送到我的 javascript 客户端,这些数据可以通过客户端的管理器导入。
  • 啊,所以你想使用 manager.importEntities 来引入你从服务器获得的东西。因此,您需要服务器将导入包放在一起。你在服务器上使用什么技术栈?
  • @SteveSchmitt 是的 :) 我是由于要序列化的外部事件而触发的更改,并作为要导入的字符串发送到连接的客户端(这将通过信号器完成渠道)。服务器端为 C# ASP.NET MVC 4

标签: breeze breeze-sharp


【解决方案1】:

首先,您需要确定要导入的包的形状,即manager.importEntities 可以理解的形状。我不认为该格式已记录在案,但您可以使用以下方法对其进行逆向工程:

var exported = manager.exportEntities(['Customer', 'Product'], {asString:true, includeMetadata:false});

然后漂亮地打印exported 的值以查看数据格式。请参阅EntityManager.exportEntities 了解更多信息。

一旦你有了它,你就可以在服务器上重新创建它。在 C# 中,您可以使用 DictionaryList 对象构建它,然后使用 Json.NET 对其进行序列化。

另一种方法是让您的 webhook 只告诉客户端启动查询以从服务器检索数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2018-01-02
    • 2013-03-22
    • 2014-11-02
    • 2013-04-05
    • 2014-04-08
    相关资源
    最近更新 更多