Was sind die Objektanforderungen (Einschränkungen) für die Speicherung eines Objekts in Ravendb

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

Frage

Ich recherchiere Ravendb zur Verwendung in einem System (hauptsächlich als anhaltender Schlüsselwert-Cache) und muss wissen, welche Einschränkungen der tatsächlichen Daten gespeichert werden können.

Die Dokumentation gibt an "Die einzige Voraussetzung ist, dass eine Root Entity String -ID -ID -Eigenschaft" jedoch alle Beispiele und Tutorials, die ich nur sehe, speichern nur einfache String-, Int-, Dezimal- und BOOL -Datentypen.

Ist es möglich, dieses Objekt zu speichern?

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

Verwenden Sie diesen (sudo) Code?

// 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();

Und hol es so aus:

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

Vielen Dank für Ihr Feedback, bitte entschuldigen Sie mein erfundenes Beispiel. Es war der einfachste Weg, wie ich beschreiben konnte, was ich versuche, ohne mich mit einer Reihe von Domain -Wissen/-modellen zu befassen.

Kyle

War es hilfreich?

Lösung

Alle Objekte in Raven werden als JSON gespeichert und werden mit Verwendung serialisiert Json.net. Solange das Ihren Typ serialisieren kann, funktioniert es.

Andere Tipps

Ravendb kann als Schlüssel-/Wertspeicher verwendet werden.

Aber sein Wert besteht darin, zu wissen, welche Art Sie gespeichert haben, um sich zurückzuziehen. 'Objekt' ist nicht hilfreich, aber immer noch möglich.

Beachten Sie auch, dass wenn der Wert riesig ist - wie bei Megabyte, die beste Verwendung der API der Anhänge: http://ravendb.net/docs/2.5/client-api/attachments

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top