C# MongoDb driver include child object
我是 Mongo 的新手,我有一个项目使用 C# MongoDb 驱动程序和 Linq 从 MongoDb 检索数据。
我有一个名为
这相当于 Entity Framework 的
如何使用 C# MongoDb 驱动程序和 Linq 完成此操作?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Instance { public int Id { get; set; } public string Name { get; set; } public int? TemplateId { get; set; } public Template Template { get; set; } } public class Template { public int Id { get; set; } public string Name { get; set; } } var collection = MongoDatabase.GetCollection<Instance>("Instances").AsQueryable() var instance = collection.First(i => i.Id == 1); var template = instance.Template; //always null |
你可以像这样进行类型查找>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class Instance { public ObjectId Id { get; set; } public string Name { get; set; } public ObjectId TemplateId { get; set; } public Template Template { get; set; } } public class Template { public ObjectId Id { get; set; } public string Name { get; set; } } string connectionString ="mongodb://localhost:27017"; var client = new MongoClient(connectionString); var db = client.GetDatabase("test"); var instances = db.GetCollection<Instance>("Instances"); var resultOfJoin = instances.Aggregate() .Lookup("Templates","TemplateId","_id", @as:"Template") .Unwind("Template") .As<Instance>() .ToList(); |
编辑:
展开 jcruz 编辑的部分。