Создание универсального вспомогательного класса MongoDb в C # 4.0 - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь создать вспомогательный класс для взаимодействия с MongoDb в C # 4.0.Я читал некоторые документы по сериализации в Bson и т. Д., Но немного растерялся.У меня есть общий класс MongoHelper с методами и Add (T objectToAdd), Delete (T objectToDelete) и Update (T objectToUpdate).Конструктор получает информацию о сервере, БД и коллекции.

Однако у меня возникают проблемы при попытке сериализации из T. Я невежественно пробовал что-то вроде этого:

BsonClassMap.RegisterClassMap (). ToBsonDocument();

Я действительно потерян на такой простой вещи.Пожалуйста, помогите!

1 Ответ

3 голосов
/ 20 марта 2012

Вам не нужно сериализовать ваши объекты. Водитель сделает это за вас. Если вы работаете с классами 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();

хотя обычно вы также пишете запрос.

...