2015-11-10 3 views
0

У меня есть таблица расписания с данными следующим образом ...C# Entity Framework Группировка

ScheduleID | CustomerID | SubdivisionID | LotNumber | ProductID | ProductDate 
1   1   1    5555  1   11/7/2015 
2   1   1    5555  2   11/8/2015 
3   1   1    5555  3   11/9/2015 
4   2   1    7777  1   11/7/2015 
5   2   1    7777  2   11/8/2015 
6   2   1    7777  3   11/9/2015 

Мне нужна C# Linq To Entities запрос, который возвращает данные, сгруппированные по CustomerID, SubdivisionID, LotNumber со всеми датами продукта в ряд.

Так, например, мне нужно, чтобы увидеть данные, как это ...

CustomerID | SubdivisionID | LotNumber | ProductDate1 | ProductDate2 | ProductDate3 
1   1    5555  11/7/2015  11/8/2015  11/9/2015 
2   1    7777  11/7/2015  11/8/2015  11/9/2015 

Я считаю, что включает в себя некоторые группировки и объединения, но я не слишком большой с Entity Framework группы. Как должен выглядеть мой код здесь?

Я думаю, что-то вдоль этих линий ...

var context = new ScheduleEntities(); 
from c in context.Schedule 
where c.ProductID == 1 || c.ProductID == 2 || c.ProductID = 3 
group c by new { c.CustomerID, c.SubdivisionID, c.LotNumber } into grouped 
select new { 
    CustomerID = grouped.Key.CustomerID, 
    SubdivisionID = grouped.Key.SubdivisionID, 
    LotNumber = grouped.Key.LotNumber, 
    ProductDates = **some kind of List<> ??** 
} 

Как вы можете видеть, я запутался, как я хотел бы получить все даты моего продукта в мою анонимную сущность. Что мне делать?

+0

Используйте хранимую процедуру. Посмотрите на команду PIVOT T-SQL. – user5151179

ответ

0

Возможно, вы можете использовать этот ProductDates = grouped.Select(p => p.ProductDate)

+0

Я хотел бы использовать синтаксис метода linq, а не синтаксис запроса linq, вы можете переписать это в синтаксисе запроса, они одинаковы. – Norgerman

+0

Так просто, кажется, я должен был подумать об этом сам. Наверное, у меня был один из этих ментальных блоков! – Targaryen

+0

Просто взгляните на struture of IGrouping, вы можете найти это решение. – Norgerman