如何在不延迟加载Entity Framework的情况下加载嵌套实体?

伊万·马克·德波诺(Ivan-Mark Debono)

我有以下模型:

public class Order 
{
    public int Id {get; set;}
    public int Number {get; set;}
    public virtual ICollection<OrderDetail> Details {get; set;}
}

public class OrderDetail
{
    public int Id {get; set;}
    public int OrderId {get; set;}
    public virtual Product Product {get; set;}
}

public class Product
{
    public int Id {get; set;}
    public int Number {get; set;}
    public string Description {get; set;}
}

在我的OrderRepository中,我加载了一个完整的订单,如下所示:

public override Order Get(int id)
{
    return base.Get(id, x => x.Details);
}

基本方法是:

public virtual T Get(int id, params Expression<Func<T, object>>[] include)
{
    if (include.Any())
    {
        var set = include.Aggregate<Expression<Func<T, object>>, IQueryable<T>>
                  (dbSet, (current, expression) => current.Include(expression));

        return set.SingleOrDefault<T>(x => x.Id == id);
    }

    return dbSet.Find(id);
}

上面的部分工作正常,因为它加载了Order和OrderDetails。但是,我也想为每个详细信息加载相关的产品,以便我也可以在列表中显示产品说明。

如何改进上述方法以允许我这样做?

haim770

只需添加另一个带有nested的参数即可Select

public override Order Get(int id)
{
    return base.Get(id, x => x.Details, x => x.Details.Select(z => z.Product));
}

参见MSDN

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不滚动的情况下强制为“延迟加载”的网页加载图像?

来自分类Dev

如何在不覆盖的情况下加载数据?

来自分类Dev

在Objectify中,如何在不知道父键的情况下通过ID加载实体?

来自分类Dev

如何在不加载父级Set集合的情况下持久化Hibernate子实体

来自分类Dev

Java Selenium:如何在不首先加载页面的情况下获取网页的HTML?

来自分类Dev

如何在不首先加载图像的情况下使用扫描线绘制?

来自分类Dev

如何在不冻结DOM的情况下使用JavaScript加载非常大的词典?

来自分类Dev

如何在不导入Julia的功能的情况下加载软件包模块

来自分类Dev

如何在不启动Outlook的情况下禁用Outlook 2013加载项?

来自分类Dev

如何在不更改$ PATH的情况下重新加载.bash_profile?

来自分类Dev

剑道树视图-如何在不展开的情况下加载子节点

来自分类Dev

如何在不刷新页面的情况下正确加载Google Map API?

来自分类Dev

如何在不延迟所有其他功能的情况下延迟 Pygame 中的事件?

来自分类Dev

如何全局禁用Entity Framework 7中的延迟加载?

来自分类Dev

NHibernate不延迟加载

来自分类Dev

NHibernate不延迟加载

来自分类Dev

如何在我的情况下创建加载屏幕

来自分类Dev

django如何在不加载的情况下更新模板

来自分类Dev

如何在不加载的情况下使用foreach库

来自分类Dev

如何在不重启的情况下重新加载 .XCompose?

来自分类Dev

实体框架:如何选择嵌套实体

来自分类Dev

如何在ImageView中延迟加载图像?

来自分类Dev

默认情况下如何在不加载片段的情况下使用导航图?

来自分类Dev

如何在不更改数据库模型的情况下在Entity Framework中添加新的实体属性

来自分类Dev

默认情况下,渴望通过通用存储库中的实体框架加载所有内容

来自分类Dev

默认情况下,渴望通过通用存储库中的实体框架加载所有内容

来自分类Dev

如何在不造成浏览器延迟的情况下暂停Javascript的执行?

来自分类Dev

如何在不导致UI冻结的情况下延迟执行特定任务

来自分类Dev

如何在不指定绝对路径的情况下使用PIL.ImageFont.truetype加载字体文件?

Related 相关文章

  1. 1

    如何在不滚动的情况下强制为“延迟加载”的网页加载图像?

  2. 2

    如何在不覆盖的情况下加载数据?

  3. 3

    在Objectify中,如何在不知道父键的情况下通过ID加载实体?

  4. 4

    如何在不加载父级Set集合的情况下持久化Hibernate子实体

  5. 5

    Java Selenium:如何在不首先加载页面的情况下获取网页的HTML?

  6. 6

    如何在不首先加载图像的情况下使用扫描线绘制?

  7. 7

    如何在不冻结DOM的情况下使用JavaScript加载非常大的词典?

  8. 8

    如何在不导入Julia的功能的情况下加载软件包模块

  9. 9

    如何在不启动Outlook的情况下禁用Outlook 2013加载项?

  10. 10

    如何在不更改$ PATH的情况下重新加载.bash_profile?

  11. 11

    剑道树视图-如何在不展开的情况下加载子节点

  12. 12

    如何在不刷新页面的情况下正确加载Google Map API?

  13. 13

    如何在不延迟所有其他功能的情况下延迟 Pygame 中的事件?

  14. 14

    如何全局禁用Entity Framework 7中的延迟加载?

  15. 15

    NHibernate不延迟加载

  16. 16

    NHibernate不延迟加载

  17. 17

    如何在我的情况下创建加载屏幕

  18. 18

    django如何在不加载的情况下更新模板

  19. 19

    如何在不加载的情况下使用foreach库

  20. 20

    如何在不重启的情况下重新加载 .XCompose?

  21. 21

    实体框架:如何选择嵌套实体

  22. 22

    如何在ImageView中延迟加载图像?

  23. 23

    默认情况下如何在不加载片段的情况下使用导航图?

  24. 24

    如何在不更改数据库模型的情况下在Entity Framework中添加新的实体属性

  25. 25

    默认情况下,渴望通过通用存储库中的实体框架加载所有内容

  26. 26

    默认情况下,渴望通过通用存储库中的实体框架加载所有内容

  27. 27

    如何在不造成浏览器延迟的情况下暂停Javascript的执行?

  28. 28

    如何在不导致UI冻结的情况下延迟执行特定任务

  29. 29

    如何在不指定绝对路径的情况下使用PIL.ImageFont.truetype加载字体文件?

热门标签

归档