使用 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);
我有两个表 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);