在RavendB中存储对象的对象要求(限制)是什么
-
15-10-2019 - |
题
我正在研究用于在系统中使用的RavendB(主要是持续的键值缓存),并且需要知道可以存储的实际数据的局限性是什么。
文档指出 “唯一的要求是根实体字符串ID属性”,但是我只看到所有样本和教程仅存储简单的字符串,int,Decimal,bool数据类型。
可以存储这个对象吗?
public class StorableObject {
public string Id {get;set;}
public object ValueObject {get;set;}
}
使用此(sudo)代码?
// I just copy and pasted this from a random blog post -- an example to show a complex object with a lot of hierarchy, methods, properties, etc.
string boundary = Guid.NewGuid().ToString();
HttpWebRequest request = HttpWebRequest.Create("http://twitpic.com/api/uploadAndPost")
as HttpWebRequest;
request.Method = "POST";
request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
request.PreAuthenticate = true;
var objectToStore = new StorableObject { ValueObject = request };
session.Store(objectToStore);
session.SaveChanges();
并以这样的方式恢复原状:
var storedObject = session.Load<StorableObject>("objects/123456789");
var request = (HttpWebRequest) storedObject.ValueObject;
感谢您的反馈,请原谅我人为的例子,这是我最简单的方法来描述我想做的事情而不研究一堆领域知识/模型。
凯尔
解决方案
乌鸦中的所有对象都存储为JSON,并使用 json.net. 。因此,只要可以序列化您的类型,它就会起作用。
其他提示
Ravendb可以用作钥匙/值存储。
但是它的价值是知道您存储了哪种类型。 “对象”没有帮助,但仍然有可能。
另请注意,如果该值很大 - 如Megabytes,最好使用附件API: http://ravendb.net/docs/2.5/client-api/attachments
不隶属于 StackOverflow