Ситуация такова, что мне нужно создать таблицу в виде сетки, которая выглядит следующим образом:
---------- | ID --- | --- Name-- | --1 / 2002-- | --2 / 2002-- | --1 / 2003-- | ........ | 2/2009 |
Cust1-- |
Cust2-- |
:
:
У меня есть две таблицы в БД - клиенты и заказы, через LINQ to SQL DataContext
Идентификатор и Имя клиентов, которые я получаю от простого запроса
var custInfo = from cust in db.Customers
select new { ID = cust.Id,
FullName = cust.FirstName + " " + cust.LastName }
dataGridOrdersPreview.DataSource = custInfo;
И мне нужна некоторая подсказка, как сгенерировать эти столбцы в формате t / year, где t указывает первую или вторую половину года, и назначить этим сгенерированным столбцам каждый заказ клиента в этой сессии года только расходы)
[править]
На данный момент я пытаюсь что-то вроде этого:
var orders = from ord in db.Orders
group ord by ord.Id_cust into grouped
let costs = grouped
.Where( s => s.YearSession == session && s.Year == year)
.Select(a => new { Costs = a.Cost ) } )
select new { ID = grouped.Key,
Name = custInfo
.Where( a => a.ID == grouped.Key)
.Select( j => j.Name).Single(),
Cost = ExtensionLibrary.Sum(costs, "\n")
};
(в разделе Стоимость, получая только суммированные затраты за этот год для каждого клиента)
и затем я думаю об итерации в течение многих лет и сессий и получении
каким-то образом запрос приводит к соответствующим столбцам
while (year <= DateTime.Today.Year)
{
year++;
while (session < 2)
{
session++;
dataGridOrdersPreview.Columns.Add(session +"/"+ year);
col.Add((session +"/"+ year),
orders.Select( a => a.Cost ).ToList() );
/* col is Dictionary<string, List<string> > */
}
session = 0;
}
Здесь я сгенерировал нужные мне столбцы, и у меня есть заказы в словаре, где Key - это имя столбца, а Value - заказы в этом столбце, но мне нужна помощь, чтобы связать его с этими столбцами