【发布时间】:2010-12-09 04:53:36
【问题描述】:
我有一个名为 Products 的集合,我正在尝试使用官方 mongo-csharp 驱动程序对其进行枚举。但是,一旦我尝试枚举集合(例如使用 foreach 循环),我就会收到以下错误。
“未找到类型 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
}
【问题讨论】:
-
我知道你放了实体类,但是禁止你在你的问题中提供一两个示例文档?它可能有助于重新创建它。
-
我刚刚更新了问题,贾斯汀欢呼。
标签: mongodb enumeration mongodb-.net-driver dbref