【问题标题】:How to include 2 navigational properties in EF?如何在 EF 中包含 2 个导航属性?
【发布时间】:2014-10-28 22:21:58
【问题描述】:

我的数据库中的一个对象有 2 个导航属性(B 和 C):

Object A
{
  B bProperty

  C cProperty
}

我希望在查询对象 A 时同时包含它们。 我尝试执行以下操作:

dbcontext.A.Include(x => x.B).ToList();

但是我如何也包含 C 呢?

【问题讨论】:

    标签: c# linq entity-framework entity-framework-6


    【解决方案1】:

    试试这个

    dbcontext.A.Include(x => x.B).Include(x => x.C).ToList();

    我一次性完成所有操作,因此在我的 EF 存储库类中,我有一个名为 GetAllIncluding 的方法,它等于以通用方式对每个实体执行此操作,

    public IQueryable<T> GetAllIncluding(params Expression<Func<T, object>>[] includes)
    {
        var query = DbSet.AsNoTracking();
    
        query = includes.Aggregate(query, (current, includeProperty) => current.Include(includeProperty));
    
        return query;
    }
    

    其中 DbSet 是 IDbSet 类型的私有成员,T 是 BaseEntity 类型的一个。

    而我的使用方式是这样的

       MyGenericRepository<A>().GetAllIncluding(x=> x.B, x=> x.C).FirstOrDefault();
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-05-23
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多