实体框架在视图上引发函数错误

时间:2013-09-17 18:41:12

标签: c# entity-framework repository entity-framework-5

我有一个存储库,它有一个方法可以传递函数以进一步查询数据,例如;

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;
    }

1 个答案:

答案 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();