Ich habe eine Sammlung namens Produkte, die ich mit dem offiziellen mongo-csharp-Treiber aufzählen möchte. Sobald ich jedoch versuche, die Sammlung aufzuzählen (z. B. mit einer foreach-Schleife), erhalte ich den folgenden Fehler.Kann über Objekte mit MongoDBRef nicht aufzählen
"Default Konstruktor nicht für Typ MongoDB.Driver.MongoDBRef gefunden"
Die Entity-Klasse sieht wie folgt aus
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; }
}
Der Eintrag in der Sammlung sieht wie folgt aus
{
"_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")
}
}
Und ich lese es so ein.
var db = Db.Instance.GetDatabase();
var matches = db.GetCollection<Product>("Product").FindAll();
Ich bekomme den Fehler nicht, bis ich eine der folgenden Möglichkeiten habe.
var l = matches.ToList();
ODER
foreach (var p in matches) {
// Do something
}
Ich weiß, dass Sie die Entitätsklasse setzen, aber verbieten Sie ein oder zwei Beispieldokumente in Ihrer Frage? Es könnte helfen, dies neu zu erstellen. –
Ich habe gerade die Frage aktualisiert, Prost Justin. – Alex