简体   繁体   English

早期加载dotnet实体框架

[英]Early loading in dotnet Entity Framework

I have 3 model classes as follows - 我有3个模型类,如下所示-

    class Product
    {
      ...
    }

    class OrderDetails
    {
      ...
      public int ProductId { get; set; }
      [ForeignKey("ProductId")]
      public virtual Product Product { get; set; }

      public int OrderId { get; set; }
      [ForeignKey("OrderId")]
      public virtual Order Order { get; set; }
    }

    class Order
    {
      ...
      public virtual ICollection<OrderDetails> OrderDetailsList { get; set; }
    }

When I fetch the details from the context like as follows - 当我从上下文中获取详细信息时,如下所示:

Order order = await _dbContext.Orders.Include(x => x.OrderDetailsList).FirstOrDefault(x => x.Id == orderId);

I would like to do the early loading of the Product for each data in OrderDetailsList as well when I fetch the Order , but I'm unable to achieve this. 当我获取Order ,我也想尽早为OrderDetailsList每个数据加载Product ,但是我无法实现。

Does this work? 这样行吗?

Order order = await _dbContext.Orders
          .Include(x => x.OrderDetailsList.Select(od=>od.Product))
          .FirstOrDefault(x => x.Id == orderId);

这对我来说很好用,请尝试一下。

 _dbContext.Orders.Include(s => s.OrderDetailsList.Select(e => e.Product));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM