我正在尝试使用EF Core进行条件选择,但我认为我有点困惑如何执行此操作。
我的MySql架构中有两个表:Products
和Offers
。我想选择所有产品并与报价合并,以您当前的促销价值覆盖该产品。我尝试使用include
,join
和其他所有方法,但我认为问题出在我的逻辑上。这是我当前的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();
所有帮助都很有用!非常感谢!
答案 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语句中。
?: