Иерархия Linq детализируется по значениям таблицы
У меня есть две таблицы: одна-таблица счетов-фактур, а другая-иерархическая таблица для счетов в счете-фактуре
Таблица Счетов-Фактур:
| InvoiceNo| AccNo| InvoiceAmount | -------------------------------------- | A1234| 345| 100.00 | | A1235| 346| 95.00 | | A1236| 347| 15.50 | | A1237| 348| 20.10 |
Иерархическая Таблица
| AccNo| HierAccNo| Level| -------------------------------------- | 123| | 1 | | 789| 123| 2 | | 890| 123| 2 | | 345| 789| 3 | | 346| 789| 3 | | 347| 890| 3 | | 348| 890| 3 |
То, что я пытаюсь сделать, - это свернуть суммы из таблицы счетов-фактур на самый высокий уровень AccNo, который является Level1, а затем на отдельном экземпляре с самого высокого номера счета откатиться обратно на следующие уровни.
Что я уже пробовал:
До сих пор я могу свернуть до самого высокого номера полосы следующим образом :
var BandL2 = from invoice in db.Invoices//Roll up to level 2 join ban in db.HierarchyTable on invoice.AccNo equals ban.Ban where invoice.GlobalInvoiceID == globalInvoice.Id group invoice by ban.HierAccNo into bandHierarchy select new { Level2Band = bandHierarchy.Key, Amount = bandHierarchy.Sum(m=> m.InvoiceAmount) }; var bandHierarchyTable = db.HierarchyTable.AsQueryable(); var BandL1 = from band2 in BandL2 // Roll Up to level 1 join band1 in bandHierarchyTable on band2.Level2Band equals band1.Ban group band2 by band1.HierAccNo into bandL1 select new { Level1Band = bandL1.Key, Amount = bandL1.Sum(m => m.Amount) };
Но теперь у меня возникла проблема с обращением процесса вспять и детализацией с уровня 1, поскольку единственные детали из формы-это AccNo уровня 1(например, 123).
Я пытаюсь сделать это на лету, используя всплывающие модалы, когда я сверлю.
Как мне снова детализировать, чтобы я мог получить уровень за уровнем суммы?
Пример:
Выходная таблица из вышеприведенного кода
| AccNo| Amount| -------------------------------------- | 123| 230.60 |
Затем
| AccNo| Amount| -------------------------------------- | 789| 195 | | 890| 35.60|
А затем щелчок по одному из Аккно.
| AccNo| Amount| -------------------------------------- | 345| 100| | 346| 95 |
Спасибо!