2016-07-07 43 views
2

我試圖描述here將lambda作爲參數傳入庫法EFCore

然而,沒有被列入的關係來實現倉庫的模式。

public IEnumerable<MyEntity> GetWithRelationship(params Expression<Func<MyEntity, object>>[] includeProperties) 
{ 
    var set = _context.MyEntities; 
    foreach (var includeProperty in includeProperties) 
    { 
    set.Include(includeProperty); 
    } 
    return set.ToList(); 
} 

然而,以下的工作:

return _context.MyEntities.Include(x => x.RelatedEntity).ToList(); 

回答

2

你必須重新分配setInclude()方法的返回值。但是,爲了避免編譯錯誤,你必須把你的setIQueryable<MyEntity>第一:

var set = _context.MyEntities as IQueryable<MyEntity>; 

foreach (var includeProperty in includeProperties) 
{ 
    set = set.Include(includeProperty); 
} 

return set.ToList(); 
+0

拋出:不能隱式轉換類型「IIncludableQueryable 」到「DbSet 」。我可以將上下文中的類型轉換爲IQueryable,但之後我失去了方法'.Add()' – jaredcnance

+0

@ user2322026,請參閱我的更新 – haim770

+0

完美。謝謝 – jaredcnance