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



我在ProductsCategory之间有多对多关联。我用ef6把它们映射成

当我通过request.categoryId查询以进行筛选时,我会遇到以下问题:

  • var query = from product in _context.Products select product ;->我无法获取每个产品的类别(product.categories==null(
  • var query = from product in _context.Products select new {product, product.Categories };->我无法按类别ID进行筛选,我想使用以下内容:

query = query.Where(p => p.Categories.ForEach(category=>category.Id == request.categoryId) );}query = query.Where(p => p.Categories.Find(category=>category.Id==request.categoryId) )->结果:Anonymous type :'a{product,product.Categories}

如何在Product实体中将product.Categories自动分配给List<Category> Categories

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

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

var query = 
from product in _context.Products.Include(x => x.Categories)
select product;

由于在这种情况下使用查询约束过于冗长,因此可以尝试方法链语法。

var query = _context.Products
.Include(x => x.Categories)
.AsQueryable(); // just for changing type to IQueryable

最新更新