如何解决通过 linQ 查询多对多关系并过滤结果/通过 LINQ 获取动态数据
我在 Products
和 Category
之间有多对多关系。我使用 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 举报,一经查实,本站将立刻删除。