我的方法需要
params Expression<Func<TEntity, IQueryable<TEntity>>>[] included
as parametres。然后以这种方式使用它们:
IQueryable<TEntity> query = dbSet;
if(included!=null)
{
foreach(var z in included)
{
query.Include(z);
}
}
但由于此次调用中抛出错误,我无法调用此函数:
Get(w=>w.Device, w=>w.DeviceUsage));
错误10无法将类型'magazyn.Models.Device'隐式转换为 'System.Linq.IQueryable'。一个明确的 存在转换(你错过了演员吗?)
如何修改调用以传递这两个参数?
答案 0 :(得分:3)
您所包含的表达式应为Expression<Func<TEntity, object>>
类型 - 它们用于从您要查询的实体中选择包含的导航属性:
params Expression<Func<TEntity, object>>[] included
另外请记住,当你没有将表达式传递给你的方法时,params数组不会为null - 它将为空。所以你可以跳过空检查
IQueryable<TEntity> query = dbSet;
foreach(var path in included)
query = query.Include(path);