我有一个通用存储库,我试图在其中包含一个函数,该函数接受要急切加载的子表的变量列表。该函数如下所示:
public IQueryable<T> FindBy(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includeEntities)
{
IQueryable<T> query = this._dbSet.Where(e => !e.Deleted).Where(predicate);
foreach (var entity in includeEntities)
{
query.Include(entity);
}
return query;
}
它有效,但我担心object
参考。
因此使用该功能:
var foundEntities = Repository.Entities.FindBy(i => i.Id == targetId, i => i.Orders, i => i.Invoices);
includeEntites
数组中传递的参数System.Linq.Expressions.PropertyExpression
是不幸的是一个内部类的类型,所以我不能制作函数签名:
public IQueryable<T> FindBy(Expression<Func<T, bool>> predicate, params Expression<Func<T, System.Linq.Expressions.PropertyExpression>>[] includeEntities)
如我所愿。有什么想法吗?