使用 C# 进行 Linq 查询

Linq query with c#

我有两个表 categories 和 products,我必须创建一个 linq 查询 returns 每个类别中的前两行产品。

感谢帮助

var res = from prod in context.Prodotti
          join cat in context.Categorie on coup.id_categoria  equals cat.id_categoria
          select coup;

我猜类似下面的作品:

var query = context.Categorie
    .Join(context.Prodotti,
        cat  => cat.id_categoria,
        prod => prod.id_categoria,
        (cat, prod) => new { prod, cat })
    .GroupBy(x => x.cat.id_categoria)
    .Select(catGroup => catGroup.Select(x => x.prod).Take(2));

这是每个类别组的前两个产品 returns。所以你得到一个 IEnumerable<IEnumerable<Prodotti>>。这里是我更喜欢 join:

的查询语法
var query = from cat in context.Categorie
            join prod in context.Prodotti 
            on cat.id_categoria equals prod.id_categoria 
            select new { cat, prod } into x
            group x by x.cat.id_categoria into catGroup
            select catGroup.Select(x => x.prod).Take(2);