我需要获得带有封面图片的产品。但是当我添加pic => pic.IsCover
时它会抛出异常。否则没有问题。我该如何解决它?
错误:
Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。 Parametreadı:path
感谢所有
_db.ProdSmartSorts
.Where(x => catIds.Contains((int)x.Product.CategoryId))
.OrderBy(x => x.ProdSmartId)
.Select(x => x.Product)
.Include(p => p.Pictures.Where(pic => pic.IsCover))
.Skip(prodCount * (pageNumber - 1))
.Take(prodCount)
.ToList();
答案 0 :(得分:2)
实体框架不支持使用Include
方法进行过滤。不过,您可以在这里投票:https://entityframework.codeplex.com/workitem/47
答案 1 :(得分:0)
在DbSet工作之后直接调用.Include()方法吗?即。
_db.ProdSmartSorts
.Include(p => p.Pictures)
.Where(x => catIds.Contains((int)x.Product.CategoryId))
.OrderBy(x => x.ProdSmartId)
.Select(x => x.Product)
.Skip(prodCount * (pageNumber - 1))
.Take(prodCount)
.ToList();
我认为Include方法仅适用于dbContext中的DbSet对象。如果你尝试将它放在链的下面,你只能根据具体情况使用IQueryable或IEnumerable对象的方法。
另外,据我所知,您不能像尝试那样使用Include功能进行过滤。因此,您必须加载与图片实体相关的所有图像。
编辑:抱歉 - 刚才意识到这个问题是专门要求对Include()方法进行过滤。请不要理会。 p>