Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
通过linQ查询多对多关系,并通过linQ过滤结果/获取动态数据_Linq_Asp.net Core Mvc_Entity Framework 6 - Fatal编程技术网

通过linQ查询多对多关系,并通过linQ过滤结果/获取动态数据

通过linQ查询多对多关系,并通过linQ过滤结果/获取动态数据,linq,asp.net-core-mvc,entity-framework-6,Linq,Asp.net Core Mvc,Entity Framework 6,我在产品和类别之间有多对多关系。我使用ef6来映射它们 当我查询到filter by request.categoryId时,我遇到以下问题: 使用var query=来自_上下文中的产品。产品选择产品 ->我无法获取每个产品的类别(product.categories==null) 使用var query=from product in_context.Products选择新的{product,product.Categories} ->我无法按categoryId进行筛选,我希望使用以下内

我在
产品
类别
之间有多对多关系。我使用ef6来映射它们

当我查询到filter by request.categoryId时,我遇到以下问题:

  • 使用
    var query=来自_上下文中的产品。产品选择产品
    ->我无法获取每个产品的类别(product.categories==null)
  • 使用
    var query=from product in_context.Products选择新的{product,product.Categories}
    ->我无法按categoryId进行筛选,我希望使用以下内容:
query=query.Where(p=>p.Categories.ForEach(category=>category.Id==request.categoryId));}
query=query.Where(p=>p.Categories.Find(category=>category.Id==request.categoryId))
->结果:
匿名类型:'a{product,product.Categories}

如何在
产品
实体中
产品.类别
自动分配到
列表类别


我不知道如何描述我的问题,帮帮我

使用第一个查询,但只需添加
Include

var查询=
来自_context.Products.Include中的product(x=>x.Categories)
选择产品;
由于在这种情况下使用查询comperEntion过于冗长,所以可以尝试使用方法链语法

var query=\u context.Products
.包括(x=>x.Categories)
.AsQueryable();//仅用于将类型更改为IQueryable