【问题标题】:Get JSON data from RavenDB从 RavenDB 获取 JSON 数据
【发布时间】:2012-09-28 10:23:06
【问题描述】:

我有一个使用嵌入式 RavenDB 存储数据的 Asp.Net MVC3 应用程序。 视图需要现在由控制器以这种方式创建的 json 数据:

    public ContentResult Data()
    {
        var res = JsonConvert.SerializeObject(DocumentSession.Query<DataObject>());
        return new ContentResult { Content = res, ContentType = "application/json" };
    }

一切正常,但对我来说似乎效率低下,因为以 JSON 格式存储在 DB 中的数据在 POCO 中序列化,然后再次反序列化。

有没有更直接的方法可以直接从嵌入式db中获取json数据?

【问题讨论】:

    标签: json asp.net-mvc-3 ravendb


    【解决方案1】:

    一点也不低效。请记住,在内部,raven 实际上使用 BSON - 所以无论如何你都必须翻译它。还有元数据字段。如果您直接通过控制器返回它,您将没有机会塑造数据的响应并去除不需要的字段。

    如果你必须继续这种思路,你有两个选择:

    1. 您可以使用 DocumentStore.DatabaseCommands.Get() 和相关操作返回 RavenJObjects,然后您可以从中转换 JSON。

    2. 您可以通过 HTTP 直接与 Raven 数据库通信,而无需使用 raven 客户端。

    这些都不是直截了当的,而且您正在抛弃 Raven 客户端 API 的许多优点。恕我直言,您要实现的任何性能提升都不会引起注意。我会坚持你目前的做法。

    另外 - 如果您只是想避免在此处进行序列化,请考虑返回 JsonResult 而不是 ContentResult。如果您想改用 Json.Net(根据您最近的另一篇文章),这是一种更简洁的方法:http://james.newtonking.com/archive/2008/10/16/asp-net-mvc-and-json-net.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 2011-12-27
      相关资源
      最近更新 更多