实体框架查询以获取子项[重复]

Posted

技术标签:

【中文标题】实体框架查询以获取子项[重复]【英文标题】:Entity Framework query to get child items [duplicate] 【发布时间】:2019-07-21 06:17:07 【问题描述】:

我的订单结构如下

订单 1234

第 1 类

项目 111

第 222 项

第 7 类

项目 444

如何修改下面的查询以包含订单 1234 中的所有商品

public List<Items> GetAllOrderItems(int orderId)


   var result = (from o in _orderContext.Orders
                 where o.OrderId == orderId
                 select s).toList();

List&lt;Items&gt; => 项目 111、项目 222、项目 444

【问题讨论】:

也许 Order 的类定义会有所帮助 你试过用谷歌搜索这个吗?已经有几十个答案了。 我认为您需要选择s.Category,然后使用SelectMany 获取项目。 【参考方案1】:

您可以为此使用SelectMany。这里举个简单的例子:

class Master

    public List<Item> Items  get; set;  = new List<Item>()  new Item(1), new Item(2) ;

class Item

    public Item(int x)
    
        this.X = x;
    

    public int X  get; set; 


public static void Main(string[] args)

    var masters = new List<Master>();
    masters.Add(new Master());
    masters.Add(new Master());

    List<int> xList = masters.Select(s => s.Items).SelectMany(s => s, (m, i) => i.X).ToList();

    foreach (int item in xList)
    
        Console.WriteLine(item);
    

【讨论】:

以上是关于实体框架查询以获取子项[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实体框架查询中新类名和新类名()之间的区别[重复]

如何获取实体框架生成的sql [重复]

LIKE查询与实体框架[重复]

使用实体框架提高大型查询的性能 [重复]

用于从 LastOrDefault 父项中查找子项的实体框架 LINQ

LINQ 查询在 C# 中使用实体框架获取单列和单行值而不使用 Where