Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Fluent Api包含Where子句_C#_Asp.net Mvc_Entity Framework_Linq - Fatal编程技术网

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