Я должен показать одну строку за один счет в моей программе, но один счет имеет более 1 суб-счета. Я хотел бы сгруппировать информацию из двух таблиц в один DataGridView. 1 строка должна отображать сгруппированную информацию обо всех суб-счетах. Только 2 столбца более сложны, чем другие: «Описание» и «Сумма». «Описание» должно содержать все описания суб-счетов и быть ограничено новой строкой. Я сделал это следующим образом:Как я могу сократить запрос linq?
var documentQuery = (from doc in entities.Bas_DocumentData
select new
{
DocumentNum = doc.DocumentNum,
DocumentDate = doc.DocumentDate,
Description = doc.Bas_BonusData.Select(t => t.Description),
BillsCount = doc.Bas_BonusData.Count,
SupplierNum = doc.Bas_BonusData.Select(cred => cred.SupplierNum).FirstOrDefault(),
Debitor = doc.Bas_BonusData.Select(deb => deb.DebitorNum).FirstOrDefault(),
Manager = doc.Bas_BonusData.Select(manager => manager.ManagerName).FirstOrDefault(),
SupplierName = doc.Bas_BonusData.Select(supp => supp.SupplierName).FirstOrDefault(),
Sum = doc.Bas_BonusData.Sum(bill => bill.Price),
IsPrinted = doc.isPrinted,
IsSent = doc.isSent,
NotSummarize = doc.NotSummarize
}).OrderBy(key => key.DocumentNum)
.ToList()
.Select(q => new AcceptedBonusProjection
{
DocumentNum = q.DocumentNum,
DocumentDate = q.DocumentDate,
Description = String.Join("\n\r", q.Description.ToArray()),
BillsCount = q.BillsCount,
SupplierNum = q.SupplierNum,
Debitor = q.Debitor,
Manager = q.Manager,
SupplierName = q.SupplierName,
Sum = q.Sum,
IsPrinted = q.IsPrinted,
IsSent = q.IsSent,
NotSummarize = q.NotSummarize
});
Есть ли лучший способ достичь моей цели? В каком порядке я могу сократить этот запрос?
спасибо. Информация полезна для меня. И я буду использовать SQL-View для достижения своей цели. – Drac