C#MongoDb驱动程序包括子对象

问题描述 投票:0回答:1

我不熟悉Mongo,并且有一个使用C# MongoDb driver和Linq从MongoDb检索数据的项目。

我有一个名为Instance的对象,可以从Mongo集合中检索它。但是,对象的Template属性属于一个单独的集合,并且在查询实例集合时为null。我想在查询实例时急于加载模板数据。

这等同于Entity Framework的Include方法,它渴望加载相关的实体。我已经在网上搜索了使用C#Mongo驱动程序的等效方法,但是没有运气。

如何使用C#MongoDb驱动程序和Linq完成此操作?

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 instance = instances.First(i => i.Id == 1);
var template = instance.Template; //always null
c# mongodb linq mongodb-.net-driver
1个回答
0
投票

对于急切的负载,请尝试使用

public virtual Template Template {组; }。但是,如果要从子表中检索数据,仍然必须使用Include(),

您可以从应该具有tempalte PK且不包含include的实例中获取模板ID>

© www.soinside.com 2019 - 2024. All rights reserved.