2012-03-20 6 views
1

C#4.0でMongoDbとやりとりするためのヘルパークラスを作成しようとしています。私はBsonなどにシリアル化するためのドキュメントのいくつかを読んできましたが、少し失われています。私が持っているのは、Add(T objectToAdd)、Delete(T objectToDelete)、Update(T objectToUpdate)メソッドを持つ汎用MongoHelperクラスです。コンストラクタはサーバ、db、およびコレクション情報を取り込みます。C#4.0の汎用MongoDbヘルパークラスの作成

私は無知このような何かしようとしたT.から直列化しようとすると、しかし、トラブルを抱えています:

BsonClassMap.RegisterClassMapを()ToBsonDocument();。

私はこのような単純なことで本当に迷っています。助けてください!

答えて

3

オブジェクトをシリアル化する必要はありません。ドライバーがあなたのためにそれを行います。 C#クラスで作業している場合は、クラスに引数のないコンストラクタがあり、シリアル化する値がパブリックプロパティとして公開されていることを確認してください。そのようなクラスは自動的に処理されます。また、BsonDocumentsを使用して下位レベルで作業することもできますが、自動的にシリアル化されます。

データベースへのクラスCのオブジェクトを保存するために必要なすべてがある:

これだけです
var server = MongoServer.Create("mongodb://localhost/?safe=true"); 
var database = server.GetDatabase("test"); 
var collection = database.GetCollection<C>("test"); 
var c = new C(); 
// initialize c 
collection.Insert(c); 

。それを読み取るには、

c = collection.FindOne(); 

と書いてください。通常は、同様にクエリを作成します。

+0

うわー!とても簡単!ジェネリックスを使用すると複雑さは増しますが、SQLサーバーよりも簡単です。ありがとうございました! – RockyMountainHigh

+0

実際、MongoDB.Dynamicを使用してMongoDB Collectionsを抽象化し、ヘルパークラスとして使用できます。 http://www.assembla.com/spaces/mongodb-dynamic/wiki –

関連する問題