c# - Entity Framework 查询以获取子项

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

<分区>

我的订单结构如下

订单 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<Items> => 项目 111,项目 222,项目 444

最佳答案

您可以为此使用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);
    }
}

关于c# - Entity Framework 查询以获取子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54906945/

相关文章:

entity-framework - 类型 Nullable<Int32> 和 Int32 之间未定义二元运算符 Equal

c# - Entity Framework 在查询中创建一个不存在的列

entity-framework - Entity Framework 6 延迟加载和查询导航属性

c# - MySQL、EF6 和 Database.CreateIfNotExists

c# - 当我运行所有测试时单元测试失败,但当我调试时单元测试通过

c# - 如何在EMGU CV 3.1上拍摄相机的屏幕截图?

c# - .NET:一般的 DataAnnotation 属性

c# - 使用 Entity Framework 将数据保存在一个事务中的多个表中

c# - 事务(进程 ID 209)在锁上死锁 |与另一个进程通信缓冲区资源并已被选为死锁受害者

c# - 将二进制文件保存为文件