Quali sono i requisiti oggetto (limitazioni) per memorizzare un oggetto in RavenDB
-
15-10-2019 - |
Domanda
Sono alla ricerca RavenDB per l'utilizzo in un sistema (per lo più come una cache di valori-chiave persistente) e necessità di sapere quali sono i limiti dei dati effettivi che possono essere memorizzati.
La documentazione "L'unico requisito è che una stringa un'entità radice proprietà Id", tuttavia tutti i campioni e tutorial sto vedendo unico negozio semplice stringa, int, decimale, i tipi di dati BOOL.
E 'possibile memorizzare questo oggetto?
public class StorableObject {
public string Id {get;set;}
public object ValueObject {get;set;}
}
Utilizzando questo codice (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();
e farlo ritornare come questo:
var storedObject = session.Load<StorableObject>("objects/123456789");
var request = (HttpWebRequest) storedObject.ValueObject;
Grazie per il feedback, vi prego di scusare il mio esempio forzato, è stato il modo più semplice potrei descrivere quello che sto cercando di fare a meno di approfondire un po 'di conoscenza di dominio / modelli.
Kyle
Soluzione
Tutti gli oggetti in Raven vengono memorizzate come JSON e sono serialize utilizza Json.NET . Quindi, fintanto che che può puntate il vostro tipo che funzionerà.
Altri suggerimenti
RavenDB può essere utilizzato come un negozio chiave / valore.
Ma il suo valore è sapere che tipo che hai memorizzato to back pull. 'Oggetto' non è utile, ma ancora possibile.
Si noti inoltre che se il valore è enorme - come in megabyte, del suo meglio per utilizzare l'API Allegati: http://ravendb.net/docs/2.5/client-api/attachments