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