2014-10-28 108 views
1

在我的數據庫中的對象有2種導航性能(B和C):如何在EF中包含2個導航屬性?

Object A 
{ 
    B bProperty 

    C cProperty 
} 

我希望包括他們倆當查詢對象A 我試着做以下幾點:

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

但我怎麼也包括C呢?

回答

3

嘗試此

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(); 

希望有所幫助。