J'ai une collection appelée produits que j'essaie d'énumérer en utilisant le pilote mongo-csharp officiel. Cependant, dès que j'essaie d'énumérer la collection (par exemple avec une boucle foreach), j'obtiens l'erreur suivante.Impossible d'énumérer des objets avec MongoDBRef
"constructeur par défaut introuvable pour le type MongoDB.Driver.MongoDBRef"
La classe entité se présente comme suit
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; }
}
L'entrée dans la collection se présente comme suit
{
"_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")
}
}
Et je le lis comme ça.
var db = Db.Instance.GetDatabase();
var matches = db.GetCollection<Product>("Product").FindAll();
Je n'obtiens pas l'erreur tant que je n'ai effectué aucune des opérations suivantes.
var l = matches.ToList();
OU
foreach (var p in matches) {
// Do something
}
Je sais que vous mettez la classe d'entité, mais vous interdisez de fournir un exemple de document ou deux dans votre question? Cela pourrait aider à recréer cela. –
Je viens de mettre à jour la question à la satisfaction de Justin. – Alex