c# - Entity Framework 在 View 上抛出函数错误

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

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

List<Household> households = repository.AllIncluding(i => i.Id == "1419683").ToList();

当我连接到表时,此调用有效,但当我连接到 View 时,它会抛出以下错误:包含路径表达式必须引用在类型上定义的导航属性。将点路径用于引用导航属性,将 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;
    }

最佳答案

代替这个

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

关于c# - Entity Framework 在 View 上抛出函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857467/

相关文章:

C# DirectoryInfo.GetFiles 通配符搜索

c# - 在 Entity Framework 6 中返回时更改属性名称

entity-framework - 在 ViewBag 中填充匿名类型会导致模型绑定(bind)器问题

java - 如何在Spring boot 2.0中实现CrudRepository的自定义方法?

c# - 如何在 C# 中编写 Windows 7 小工具?

c# - 在没有 SQL View 的情况下,将数据反规范化为代码优先 Entity Framework 实体

c# - 模拟CloudStorageAccount和CloudTable for Azure表存储

c# - Entity Framework 代码首先初始化外键

dependencies - Ivy:将所有依赖项安装到共享存储库

git - 你是否推送每一个提交?