내 프로그램에서 청구서 당 한 행을 표시해야하지만 한 가지 청구서에는 두 개 이상의 보조 청구서가 있습니다. 하나의 DataGridView에서 두 테이블의 정보를 그룹화하고 싶습니다. 1 행에는 모든 하위 지폐에 대한 그룹화 된 정보가 표시되어야합니다. "설명"및 "합"의 두 열만 다른 열보다 복잡합니다. "Description"은 하위 지폐의 모든 설명을 포함해야하며 개행으로 구분되어야합니다. 나는 그것을 다음 방향으로 만들었다 :어떻게 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