通过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