У меня есть коллекция под названием Продукты, которые я пытаюсь перечислить, используя официальный драйвер mongo-csharp. Однако, как только я попытаюсь перечислить коллекцию (например, с помощью цикла foreach), я получаю следующую ошибку.Невозможно перечислить объекты с помощью MongoDBRef
«Конструктор по умолчанию не найден для типа MongoDB.Driver.MongoDBRef»
Класс объект выглядит как этот
public partial class Product
{
public BsonObjectId _id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Url { get; set; }
public int Price { get; set; }
public string Country { get; set; }
public MongoDBRef Merchant { get; set; }
}
запись в коллекции выглядит следующим образом
{
"_id" : ObjectId("4cff739fba63c20301ee5bc5"),
"Name" : "Product Name",
"Description" : "Product Description",
"Url" : "http://mysite/products/product-name",
"Price" : 1200,
"Country" : "au",
"Merchant" : {
"$ref" : "Merchant",
"$id" : ObjectId("533981033d565e640d000000")
}
}
И я читаю его вот так.
var db = Db.Instance.GetDatabase();
var matches = db.GetCollection<Product>("Product").FindAll();
Я не получаю сообщение об ошибке, пока не сделаю одно из следующих действий.
var l = matches.ToList();
ИЛИ
foreach (var p in matches) {
// Do something
}
Я знаю, что вы поместили класс сущности, но запретите вам предоставить примерный документ или два в вашем вопросе? Это может помочь в воссоздании этого. – 2010-12-13 07:48:46
Я только что обновил вопрос, приветствую Джастина. – Alex 2010-12-13 13:53:05