【问题标题】:How to using linq asp.net core如何使用 linq asp.net core
【发布时间】:2020-05-14 15:10:32
【问题描述】:

有人可以帮我解释一下我该怎么做吗?

我需要按类别列出我的产品(目前工作正常),但现在我需要检查列出的每个产品是否是用户“愿望清单”的一部分。如果是,例如需要显示不同的图标颜色。

控制器:

// Products Id
var produtosId = _context.Product
                         .Where(m => m.IdProdutoCategoria == idCategoria || 
                                     m.IdProdutoCategoriaNavigation.IdPai.Value == 1)
                         .Where(m => m.IsAtivo.Equals(true))
                         .GroupBy(m => m.Nome)
                         .Select(m => m.Min(p => p.IdProduto));

// products list
var products = await _context.Product
                             .Where(p => produtosId.Contains(p.IdProduto))
                             .Include(p => p.IdProdutoCategoriaNavigation)
                             .Include(p => p.IdProdutoTamanhoNavigation)
                             .Include(p => p.IdProdutoTipoMassaNavigation)
                             //.Include(p => p.WishList.Contains()
                             .ToListAsync()
                             .ConfigureAwait(true);

return View(products);

查看:

@* WishList Icon *@
<div class="WishList" data-id="@item.IdProduto" style="cursor: pointer">
    <i class="@( item.XXXX == XX ? "fas fa-heart" : "far fa-heart") fa-1x text-success float-right mr-2 mb-2"></i>
</div>

【问题讨论】:

  • 这是视图模型和投影派上用场的情况。向视图模型中添加一个名为 IsOnWishList 的字段,并将其设置为等于 IsOnWishList = x.WishList.Any()。现在您可以在 Razor 中使用该值。
  • 您需要为给定的用户 X 获取按类别分组的白名单产品吗?
  • 需要给定用户的所有产品的结果。当某些产品在他的愿望清单中时,在 Razor 中使用的一些价值可以像图标一样显示。我会尝试@SteveGreene 的建议。

标签: c# asp.net-mvc linq asp.net-core


【解决方案1】:
.Where(p => _context.WishList.Any(wl => wl.IdProduto == p.IdProduto))
var products = await _context.Product
        .Where(p => produtosId.Contains(p.IdProduto))
        .Include(p => p.IdProdutoCategoriaNavigation)
        .Include(p => p.IdProdutoTamanhoNavigation)
        .Include(p => p.IdProdutoTipoMassaNavigation)
        .Where(p => _context.WishList.Any(wl => wl.IdProduto == p.IdProduto))
        .ToListAsync()
        .ConfigureAwait(true)

【讨论】:

  • 需要给定用户的所有产品的结果。当某些产品在他的愿望清单中时,在 Razor 中使用的一些值可以像图标一样显示。
猜你喜欢
  • 2019-12-19
  • 1970-01-01
  • 2022-07-23
  • 1970-01-01
  • 2021-12-20
  • 2019-11-02
  • 2018-09-10
  • 2020-09-18
  • 2021-10-20
相关资源
最近更新 更多