В настоящее время я заполняю объект данными из базы данных SQL, используя Linq и Entity Framework. Таблица в настоящее время отформатирована следующим образом:
Family Member | FamilyID | PlanID | Rate
John | 1 | 1 | 50.39
Sue | 1 | 1 | 24.99
John | 1 | 2 | 29.99
Sue | 1 | 2 | 34.50
Tim | 2 | 1 | 119.00
Mary | 2 | 1 | 199.99
Может быть любое количество планов и любое количество семей, а в семьях может быть любое количество членов семьи. Мои текущие модели структурированы как:
public class Plan
{
public List<Family> Families {get; set;}
public int PlanID {get; set;}
public string PlanName {get; set;}
}
public class Family
{
public int FamilyId {get; set;}
public List<FamilyMember> FamilyMemberList {get; set;}
public decimal FamilyPlanTotalRate {get; set;}
}
public class FamilyMember
{
public string MemberName {get; set;}
public decimal Rate {get; set;}
}
Я использую linq для заполнения этой модели. В настоящее время это выглядит следующим образом:
var Plans = context.storedProecure()
.GroupBy(a => a.PlanID)
.Select(Plan => new Plans
{
PlanId = Plan.Key,
PlanName = Plan.Select(d => d.PlanName).First(),
Families = Plan.GroupBy(e => e.FamilyID).Select(Fam => new Family
{
FamilyId= Fam.Key,
FamilyMemberList = Fam.Select(FamMember => new FamilyMember
{
Member = FamMember.MemberName,
Rate = FamMember.Rate
}).ToList(),
FamilyPlanTotalMonthlyPremium = Fam.Sum(FamMember => FamMember.Rate)
}).ToList()
}).ToList();
Теперь мне нужно преобразовать эти данные (сводку) так, чтобы вместо Плана с несколькими семействами у Семейства было несколько планов, например:
Family Member | Plan 1 | Plan 2 |
John | 50.39 | 29.99 |
Sue | 24.99 | 34.50 |
Tim | 119.00 | |
Mary | 199.99 | |
Конечная цель состоит в том, чтобы отобразить эти данные в виде таблицы в формате PDF с пакетом migradoc, но я не думаю, что это является центральной проблемой.
Любая помощь будет принята с благодарностью