Обычно я не работаю с C#, но есть проблема, которую мне нужно решить.
У меня есть БД, которая возвращает несколько строк для каждого документа, если этот документ содержит более 1 строки данных, и у меня есть нет способа изменить способ его работы.
Тем не менее мне нужно отображать каждый документ только как общее количество всех строк.
Я хотел бы включить мой контроллер API для итерации по всем элементам, проверить, имеют ли они одинаковый идентификатор, и если это так, добавьте значения для указанных полей c, оставив при этом некоторые из них без изменений.
Что-то вроде:
Если это объекты списка
{ID: 1, Account : AB C, значение: 200},
{ID: 1, учетная запись: AB C, значение: 50},
{ID: 2, учетная запись: BCD, значение: 150},
Тогда это будет вывод
{ID: 1, счет: AB C, значение: 250},
{ID: 2, счет: BCD, значение: 150},
Вот мой код контроллера:
var List = await (from s in _context.tbl1
// Join tbl2 table as t context
join t in _context.tbl2 on s.Ref equals t.Ref
// Join tbl3 table as u context
join u in _context.tbl3 on s.Account equals u.Account
where s.Account == id
// Use View Model
select new ViewModel
{
ID = s.Ref,
Account = s.Account,
Name = u.Name,
Date = s.Date,
Value = t.Value
}).ToListAsync();
Если это не очень хорошая идея, я всегда могу сделать это на стороне переднего конца, но я хотел бы повлиять передний конец в наименьшем количестве возможных путей.