C# Fluent Api包含Where子句
我需要有封面图片的产品。但是当我添加C# Fluent Api包含Where子句,c#,asp.net-mvc,entity-framework,linq,C#,Asp.net Mvc,Entity Framework,Linq,我需要有封面图片的产品。但是当我添加pic=>pic.IsCover时,它是抛出异常。否则就没有问题了。我怎样才能修好它 错误: 包含路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,选择运算符作为集合导航属性。 参数adı:路径 多谢大家 _db.ProdSmartSorts .Where(x => catIds.Contains((int)x.Product.CategoryId)) .OrderBy(x => x.ProdSmartId)
pic=>pic.IsCover
时,它是抛出异常。否则就没有问题了。我怎样才能修好它
错误:
包含路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,选择运算符作为集合导航属性。
参数adı:路径
多谢大家
_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();
实体框架不支持使用
Include
方法进行筛选。不过,您可以在这里投票支持它:实体框架不支持使用Include
方法进行过滤。不过,您可以在这里投票赞成:直接在DbSet之后放置.Include()方法调用是否有效?i、 e
_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()方法进行过滤。请忽略。在DbSet之后直接调用.Include()方法是否有效?i、 e
_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()方法进行过滤。请忽略。尝试使用SelectMany而不是SelectMany尝试使用SelectMany而不是SelectMany