如何使用LINQ表达式将对象动态加载到查询中?

时间:2018-08-06 19:43:56

标签: c# linq

我正在尝试编写一个函数,以动态地将对象包含到查询中。

意图是像使用

empresa.Get(x => x.Employees);

empresa.Get(x => x.Employees, x => x.Department);

但是当我尝试这样做时,我收到此错误:

  

无法将lambda表达式转换为Expression > []类型,因为它不是委托类型。

我编写的函数遵循

public IQueryable<EmpresaModel> Get(params Expression<Func<EmpresaModel, object>>[] includes)
{
    var query = _conexao.Set<EmpresaModel>();

    foreach (var property in includes)
    {
        query.Include(property);
    }

    return query;
}

我该如何解决?

1 个答案:

答案 0 :(得分:-2)

您必须在课堂上加入System.Linq.Expressions参考。