C# 如何将JSON存储到RavenDB?

C# 如何将JSON存储到RavenDB?,c#,json,nosql,json.net,ravendb,C#,Json,Nosql,Json.net,Ravendb,我想获取现有数据并将其放入RavenDB 我现有的数据是XML格式的,所以我将其转换为JSON 我的下一步应该是什么? 我可以按原样储存在RavenDB吗? 我是否需要创建新对象来存储它 提前谢谢 我假设您的json数据表示应用程序域的数据,您希望在应用程序中使用具有属性的类来处理该数据,对吗 如果是这种情况,您需要编写一个简单的导入应用程序,该应用程序将填充您的域模型一次,然后将所有对象存储为常规的RavenDB文档,就像使用RavenDB存储任何其他对象一样 这有意义吗?使用RavenDB客

我想获取现有数据并将其放入RavenDB

我现有的数据是XML格式的,所以我将其转换为JSON

我的下一步应该是什么? 我可以按原样储存在RavenDB吗? 我是否需要创建新对象来存储它


提前谢谢

我假设您的json数据表示应用程序域的数据,您希望在应用程序中使用具有属性的类来处理该数据,对吗

如果是这种情况,您需要编写一个简单的导入应用程序,该应用程序将填充您的域模型一次,然后将所有对象存储为常规的RavenDB文档,就像使用RavenDB存储任何其他对象一样


这有意义吗?

使用RavenDB客户端向RavenDB提交内容不是强制性的,也没有必要先填充域模型。这是不必要的工作,只会使数据提交/插入/迁移/导入过程复杂化

您可以使用直接向RavenDB提交JSON格式的文档,具体来说,您可能希望查看“单文档操作”主题中的简单示例,这些示例(当前)使用“curl”显示示例

请考虑以下.NET代码:

var url = string.Format("http://ravendb-server:8080/databases/{0}/docs/{1}", databaseName, docId);
var webRequest = System.Net.HttpWebRequest.CreateHttp(url);
webRequest.Method = "PUT";
webRequest.ContentType = "application/json";
webRequest.Headers["Raven-Entity-Name"] = entityName;
var stream = webRequest.GetRequestStream();
using (var writer = new System.IO.StreamWriter(webRequest.GetRequestStream()))
{
    writer.Write(json);
}
var webResponse = webRequest.GetResponse();
webResponse.Close();
上面的代码段允许您将有效的JSON文档提交到具有指定ID的特定数据库和特定文档集合中。通过URL路径执行数据库选择和ID指定,并使用元数据标题
Raven Entity Name
指定文档集合


您可能需要发送一些文件,例如
Raven Clr Type
Last Modified
,但它们不是必需的。

这很有意义。我最终是在寻找一种快速而肮脏的方法来解决这个问题,但是我越是深入研究这个问题,我就越意识到迁移是一种痛苦,而且我现在越是专注,将来的头痛就越少。谢谢@这就是为什么它被作为评论而不是答案发布的原因。