查询存储库时填充相关实体

时间:2012-03-27 16:21:33

标签: c# entity-framework

在我的存储库中,我从TransportedMaterial表中获取数据。我还'包含'TransportedMaterialPacking来检索此链接表中的所有相关数据。在最后一个表中,我还想检索相关的MaterialPacking数据。 我不知道怎么做?

enter image description here

在上图中,我们看到MaterialPacking为空(尚未填充)。

以下是模型:

public class TransportedMaterialPacking
{
    public int TransportedMaterialPackingID { get; set; }
    public MaterialPacking MaterialPacking { get; set; }
    public double Quantity { get; set; }
    public double? Width { get; set; }
    public double? Height { get; set; }
    public double? Length { get; set; }
}

public class MaterialPacking
{
    public int MaterialPackingID { get; set; }
    public string DescriptionFr { get; set; }
    public string DescriptionNl { get; set; }
}

关系是这样的:

TransportedMaterial>> TransportedMaterialPacking>> MaterialPacking

public static class ORMExtensions
{
    public static IQueryable<T> MyInclude<T, C>(this IQueryable<T> source, Expression<Func<T, C>> function)
        where C : class
        where T : class
    {
        return source.Include(function);
    }

我使用实体框架。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以执行.include(“nav1.nav2”)来加载相关实体

我不知道.include(x =&gt; x.nav1.nav2)是否有用

答案 1 :(得分:0)

您可以通过在查询中执行类似foo.Include("NavigationProperty.SubNavigationProperty")的操作来“级联”包含。

修改使用属性表示法可以包含导航子属性,例如,请参阅this