Каковы требования объекта (ограничения) для хранения объекта в Ravendb

StackOverflow https://stackoverflow.com/questions/4596998

Вопрос

Я исследую 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top