2012-03-20 22 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 2012-03-20 20:53:57

+0

其實你可以使用MongoDB.Dynamic來抽象你的MongoDB Collections並將它用作你的輔助類。 http://www.assembla.com/spaces/mongodb-dynamic/wiki – 2012-06-04 20:46:53