Я новичок в MongoDb и в настоящее время использую драйверы CSharp (версия 1.2).Мои проблемы возникают при использовании карты BsonClass.Ниже приведен код, который я пытаюсь выполнить.Я просто определил пользовательский тип, который я хотел бы отобразить в BsonDocument.
Чтобы использовать это, я использую BsonClassMap.RegisterClassMap ().Когда я нажимаю на оператор foreach (пытаясь получить доступ к первой записи в результатах FinAs ()), я получаю следующую ошибку:
'Невозможно десериализовать Guid из BsonType ObjectId.'
Из того, что японимать, что BsonClassMap использует GuidGenerator для объектов типа Guid.Почему я получаю эту ошибку?
Обратите внимание, что вставка выполняется без ошибок ... и после выполнения вставки newEmployee имеет идентификатор EmployeeId, который был автоматически сгенерирован для него.
Воткод, который я пытаюсь запустить:
class Program{
static void Main(string[] args){
MongoServer server = MongoServer.Create();
MongoDatabase dataBase = server.GetDatabase("test");
MongoCollection<Employee>employees = dataBase.GetCollection<Employee>("employees");
BsonClassMap.RegisterClassMap<Employee>(cm =>
{
cm.MapProperty(c => c.Name);
cm.MapProperty(c => c.Email);
cm.MapIdProperty(c => c.EmployeeId);
});
var newEmployee = new Employee{ Name="Test", Email="test@test.com"};
employees.Insert(newEmployee);
foreach(Employee e in employees.FindAs<Employee>(Query.EQ("Name","Test")){
Console.Writeline(e.Name);
}
}
}
public class Employee
{
public Guid EmployeeId {get;set;}
public string Name {get;set;}
public string Email {get;set;}
}