【问题标题】:Query with many-to-many relationship by linQ and filter result/ Get dynamic data by LINQ通过 linQ 查询多对多关系并过滤结果/通过 LINQ 获取动态数据
【发布时间】:2021-05-05 11:47:35
【问题描述】:

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 实体中将product.Categories 自动分配给List<Category> Categories

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

【问题讨论】:

    标签: linq asp.net-core-mvc entity-framework-6


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2018-05-20
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多