C# Linq在列表的每一项中都包含属性

C# Linq在列表的每一项中都包含属性,c#,linq,C#,Linq,我有这四门课 它们在层次结构中使用: class Reception { virtual List<Pallets> Pallets { get; set; } float Weight { get; set; } } class Pallet { virtual List<PalletDetail> PalletDetail { get; set; } } class PalletDetail {

我有这四门课

它们在层次结构中使用:

  class Reception {
      virtual List<Pallets> Pallets { get; set; }
      float Weight { get; set; }
  }

  class Pallet {
      virtual List<PalletDetail> PalletDetail { get; set; }
  }

  class PalletDetail {
      virtual Package Package { get; set; }
      int Quantity { get; set; }
  }

  class Package {
      float Weight { get; set; }
  }
问题是查询中没有包含对象
,因此前面的
foreach
在每次迭代中都会生成一个SQL查询


问题:我如何将其包括在内?(语法是什么?

您也只需要包含包,将所有包含的内容替换为一个:

var receptions = dbContext.Receptions
    .Include(r => r.Pallets
        .Select(p => p.PalletDetail
            .Select(pd => pd.Package)))
    .ToList());

怎么用?这就是问题:“我怎么能包括它?”可能的重复:-虽然EF版本可能不同,但如果您先使用代码,那么它应该是相似的。是的,大卫说的可能也没问题:)
。包括(a=>a.Pallets.Select(b=>b.PalletDetail.Package))
hmmm这是错误的。。。b、 PalletDetail是一个列表…没有区别,因为要获取.Package,它将自动包括PalletDetail和Pallets
var receptions = dbContext.Receptions
    .Include(r => r.Pallets
        .Select(p => p.PalletDetail
            .Select(pd => pd.Package)))
    .ToList());