Pregunta

Estoy investigando RavenDB para su uso en un sistema (en su mayoría como un persistente caché de claves-valor) y necesidad de conocer cuáles son las limitaciones de los datos reales que se pueden almacenar.

La documentación "El único requisito es que una cadena entidad raíz Id propiedad" sin embargo todos los ejemplos y tutoriales que estoy viendo sólo almacenan simple cadena, int, decimal, los tipos de datos BOOL.

¿Es posible almacenar este objeto?

public class StorableObject {
   public string Id {get;set;}
   public object ValueObject {get;set;}
}

El uso de este código (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();

Y recuperarlo a cabo de esta manera:

var storedObject = session.Load<StorableObject>("objects/123456789");
var request = (HttpWebRequest) storedObject.ValueObject;

Gracias por sus comentarios, por favor disculpen mi ejemplo artificial, que era la forma más sencilla que podría describir lo que estoy tratando de hacer sin profundizar en un montón de conocimiento de dominio / modelos.

Kyle

¿Fue útil?

Solución

Todos los objetos de cuervo se almacenan como JSON y se serialize utilizando Json.NET . Así que, mientras que puede serializar el tipo que va a trabajar.

Otros consejos

RavenDB puede ser utilizado como un almacén de clave / valor.

Sin embargo, su valor es saber qué tipo usted ha almacenado al desmontaje posterior. 'Objeto' no es útil, pero aún es posible.

También tenga en cuenta que si el valor es enorme - como en megabytes, lo mejor es utilizar la API de archivos adjuntos: http://ravendb.net/docs/2.5/client-api/attachments

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top