微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决通过 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 }; ->我无法按 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) ) -> 结果:Anonymous type :'a{product,product.Categories}

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

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

解决方法

使用第一个查询,但只需添加 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。