在C#4.0中创建通用的MongoDb帮助器类

时间:2012-03-20 17:47:43

标签: generics c#-4.0 mongodb mongodb-.net-driver

我正在尝试创建一个帮助类,用于在C#4.0中与MongoDb进行交互。我一直在阅读关于序列化到Bson等的一些文档,但有点迷失。我所拥有的是一个通用的MongoHelper类,带有Add(T objectToAdd),Delete(T objectToDelete)和Update(T objectToUpdate)方法。构造函数接受服务器,db和集合信息。

我遇到了麻烦,试图从T序列化。我无知地试过这样的事情:

BsonClassMap.RegisterClassMap()ToBsonDocument();

我真的迷失在这么简单的事情上。请帮忙!

1 个答案:

答案 0 :(得分: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();

虽然通常你也会写一个查询。