Я изучаю RavenDB для использования в системе (в основном в качестве постоянного кеша ключа), и вам нужно знать, каковы ограничения фактических данных, которые могут храниться.Каковы требования к объекту (ограничения) для хранения объекта в RavenDB
The documentation states «Единственное требование - это свойство идентификатора строки корня сущности», однако все образцы и обучающие программы, которые я вижу, хранят только простые типы строк, 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;
Спасибо за Ваш комментарий, пожалуйста, простите мой надуманный пример, это самый простой способ, которым я мог бы описать то, что я пытаюсь сделать, не вникая в куча знаний/моделей домена.
Kyle
RavenDB можно использовать в качестве хранилища ключ/значение. Но его ценность - это знать, какой тип вы сохранили, чтобы отступить. «Объект» не помогает, но все же возможен. Также обратите внимание, что если значение огромно - как в мегабайтах, лучше всего использовать API вложений: http://ravendb.net/docs/2.5/client-api/attachments –