EF Core的条件选择

时间:2018-08-24 02:53:44

标签: c# asp.net-core ef-core-2.1

我正在尝试使用EF Core进行条件选择,但我认为我有点困惑如何执行此操作。 我的MySql架构中有两个表:ProductsOffers。我想选择所有产品并与报价合并,以您当前的促销价值覆盖该产品。我尝试使用includejoin和其他所有方法,但我认为问题出在我的逻辑上。这是我当前的EF核心选择,没有与报价“合并”。

List<ProductViewModel> viewModel = await _context.product
  .Where(p => p.establishment_id == EstablishmentId)
  .Select(p => new ProductViewModel()
  {
    Id = p.id,
    Name = p.name,
    Description = p.description,
    Rating = p.rating,
    Price = p.price,
    Photos = p.product_photo
     .Where(pho => pho.product_id == p.id)
     .Select(pho => new ProductPhotoViewModel()
     {
       Path = pho.path
     }).ToList(),
     Category = _context.category
     .Join(_context.product_has_category, c => c.id, phc => phc.category_id, (c, phc) => new {c, phc})
     .Where(c => c.phc.product_id == p.id)
     .Select(c => new CategoryViewModel()
     {
       Id = c.phc.category.id,
       Name = c.phc.category.name
     }).SingleOrDefault()
  }).ToListAsync();

所有帮助都很有用!非常感谢!

1 个答案:

答案 0 :(得分:0)

使用三元条件运算符for key,val in FLAGS.flag_values_dict().items() 和不等于条件while ((token.equals("-")||token.equals("+"))&& !s.isEmpty()&& ((!s.peek().equals("(")&&!s.peek().equals(")")))) // I've changed this line q.add(s.pop()); s.push(token); 来将条件添加到select语句中。

?: