EF Linq - 如何在同一查询中选择孩子?

时间:2014-09-29 14:53:57

标签: c# linq entity-framework linq-to-entities

我在其上面安装了带有EF 5的Oracle数据库。

假设我有表公司和订单。我有EF对应的实体,其中公司有字段

List<Orders> Orders

我不想创建关联

我有一个IQuerable查询,我需要使用

填写每家公司的订单

order.CompanyId == company.Id

我无法绕过这个大概..任何帮助都将不胜感激。

编辑:并非每家公司都有订单。订单列表可能为空。

1 个答案:

答案 0 :(得分:0)

我会考虑使用.Join()方法来包含Orders表。我是从内存中写的,所以请原谅语法错误。

//I only use this bc I don't know the full schema.
class DTOCompany {
  public int ID {get;set;}
  public List<Orders> Orders {get;set;}
}

public List<Companies> GetCompaniesOrders() {

  using (var db = new Entities()) {
    return db.Companies
      .AsEnumerable() //may not be needed.
      .Join(db.Orders,
        c => CompanyId,
        o => o.CompanyId,
        (c,o) => new { Company = c, Orders = o})
      )
      .Select(co => new DTOCompany() {
        ID = co.Companies.CompanyId,
        Orders = co.Orders.ToList()
      })
      .ToList();
  }
}