我有兩個表類別和產品,我必須創建一個linq查詢返回我的每個類別的前兩行產品。Linq查詢與c#
感謝您的幫助
var res = from prod in context.Prodotti
join cat in context.Categorie on coup.id_categoria equals cat.id_categoria
select coup;
我有兩個表類別和產品,我必須創建一個linq查詢返回我的每個類別的前兩行產品。Linq查詢與c#
感謝您的幫助
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));
這將返回每個類別組的前兩個產品。所以你得到一個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);
第一個結果是不是IEnumerable
@AntonioDiGirolamo:我不明白你的意見。是的,它是'IEnumerable
查詢的結果是IEnumerable
你試過使用:'拿(2)'?告訴我們你的代碼... –
你的嘗試在哪裏? – Bonifacio2
聽起來像作業.. –