代码之家  ›  专栏  ›  技术社区  ›  djdd87

实体框架-通过集合导航和包含属性

  •  8
  • djdd87  · 技术社区  · 14 年前

    我刚吃了一顿大餐 *blonde moment**

    所以为了在查询中返回数据,我需要使用 Include 方法:

    var query = from item in context.Customers
                    .Include(x=> x.Orders)
                select item
    

    这是好的,直到我想选择一个项目更深入的层次结构。即:

    Customer 1-* Orders *-1 Factory 1-1 Factory Type
    

    急切地 将执行以下操作:

    var query = from item in context.Customers
                    .Include("Orders.Factory.FactoryType")
                select item
    

    有了以上这些,我无法利用 System.Data.Entity

    如果我没有收藏,我可以写:

    .Include(x=> x.Order.OrderType.Factory.FactoryType) // No bother
    

    但是因为 Orders FirstOrDefault , SingleOrDefault


    **只是换个说法,我碰巧很喜欢金发女郎*

    1 回复  |  直到 7 年前
        1
  •  14
  •   Morteza Manavi    14 年前

    对于包含EntityCollections,您可以使用 选择 方法:

    var query = from item in context.Customers
               .Include(c => c.Orders.Select(o => o.Factory.FactoryType))
               select item
    

    请注意,这不是标准的过载 ObjectQuery<T>.Include Method 仅仅是一个扩展方法 ObjectQuery<T> EF CTP4 .