3

私はシステムで使用するためにRavenDBを研究しており(主に永続的なKey-Valueキャッシュとして)、保存できる実際のデータの制限を知る必要があります。

ドキュメントには「唯一の要件はルートエンティティの文字列Idプロパティである」と記載されていますが、私が見ているすべてのサンプルとチュートリアルには、単純な文字列、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;

フィードバックをお寄せいただきありがとうございます。私の考案した例をお許しください。これは、ドメイン知識/モデルの束を掘り下げることなく、私がやろうとしていることを説明できる最も簡単な方法でした。

カイル

4

2 に答える 2

2

Raven のすべてのオブジェクトは JSON として保存され、Json.NETを使用してシリアル化されます。それがあなたの型をシリアライズできる限り、それはうまくいきます。

于 2011-01-05T13:13:16.073 に答える