Я бы реализовал это, используя комбинацию LinqToSql и LinqToXml, аналогично следующему:
var query = new XDocument(
new XElement("Results", from i in context.my_master_tbl
where i.ItemDate > DateTime.Now.AddDays(-7)
select new XElement("MasterItem",
new XAttribute("MasterName", i.Name),
from c in i.my_child_tbl
group c by c.Date into g
select new XElement("Child",
new XAttribute("Date", g.Key),
new XAttribute("SumField", g.Sum(d => d.FieldToSum))
)
)));
Вот некоторый результирующий XML, который будет сгенерирован:
<Results>
<MasterItem MasterName="A">
<Child Date="2009-01-15T00:00:00-06:00" SumField="491470" />
</MasterItem>
<MasterItem MasterName="B">
<Child Date="2009-01-29T00:00:00-06:00" SumField="491526" />
</MasterItem>
<MasterItem MasterName="C">
<Child Date="2009-01-15T00:00:00-06:00" SumField="1965960" />
<Child Date="2009-07-14T00:00:00-05:00" SumField="-27" />
</MasterItem>
<MasterItem MasterName="D" />
<MasterItem MasterName="E" />
</Results>
Я уверен, что вам нужно внести некоторые изменения в это на основе макета, который вы планируете использовать, но, надеюсь, это даст вам некоторые идеи.
Это также предполагает, что ваши отношения установлены между вашей основной и дочерней таблицами. Если это не так, потребуются некоторые другие изменения.