我有一个存储库,它有一个方法可以传递函数以进一步查询数据,例如;
List<Household> households = repository.AllIncluding(i => i.Id == "1419683").ToList();
当我连接到表时,此调用有效但当我连接到View时会抛出以下错误: Include路径表达式必须引用在该类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。
我认为它可能与我在桌面上的关系有关,但即使我查询Id(我知道我可以使用find),它仍然会抛出错误。请帮忙!?
这是我的方法:
public virtual IQueryable<Household> AllIncluding(params Expression<Func<Household, object>>[] includeProperties)
{
IQueryable<Household> query = _dbContext.Households;
foreach (var includeProperty in includeProperties)
{
query = query.Include(includeProperty);
}
return query;
}
答案 0 :(得分:1)
而不是这个
List<Household> households = repository.AllIncluding(i => i.Id == "1419683").ToList();
试试这个
var households = repository.AllIncluding().Where(i => i.Id == "1419683").ToList();
另一件事是.Include
接受导航属性,这意味着链接表。例如,如果您将scooters
作为链接实体,那么您可以执行类似这样的操作
var households = repository.AllIncluding(x => x.Scooters).Where(i => i.Id == "1419683").ToList();