2013-09-20 4 views
1

У меня есть следующие таблицы: Items, ItemMovements.Linq Grouping with Include

То, что я хотел бы получить список ItemMovements сгруппированных по ItemID где сумма движения Кол-во в группе больше, чем 10. Кроме того, я хотел бы связать пункт тоже ..

Вот что я в конечном итоге с:

var res = ctx.ItemMovements 
      .Include("Item") 
      .GroupBy(x => x.ItemID) 
      .ToList(); 
+1

подробнее пожалуйста, может поместить некоторую информацию о '' 'деталей и ItemMovements' – wudzik

+1

где вопрос? – Mortalus

ответ

3
var idQuery = ctx.ItemMovements 
    .GroupBy(e => e.ItemID) 
    .Select(g => new { ItemID = g.Key, QuantitySum = g.Sum(Quantity) }) 
    .Where(e => e.QuantitySum > 10) 
    .Select(e => e.ItemID); 

var query = ctx.ItemMovements 
    .Include("Item") 
    .Where(e => idQuery.Contains(e.ItemID)); 
+0

Спасибо! То, что я искал. Необходимы небольшие изменения. Как модифицировать второй запрос, чтобы получить каждый элементID ONCE только, пожалуйста? –

+0

var query = ctx.Items.Where (e => idQuery.Contains (e.ItemID)); –