누구나 LINQ를 사용하여이 작업을 수행 할 수있는 제안이 있습니까?그룹을 수행하고 LINQ를 사용하여 가입하십시오.
var statements = db.vwOutstandingStatements.ToList();
var amounts = (from s in db.vwOutstandingStatements
group s by s.Id into v
select new
{
Id = v.Key,
amount = v.Sum(a => a.Amount)
}).ToList();
List<vmVendorStatements> statementsToProcess = new List<vmVendorStatements>();
foreach (var amount in amounts)
{
var statement = statements.Find(s => s.Id == amount.Id);
statementsToProcess.Add(new vmVendorStatements()
{
Id = statement.Id,
PropertyAddress = statement.PropertyNumber + " " + statement.PropertyStreet + " " + statement.PropertyTown,
StatementDate = statement.StatementDate.ToLongDateString(),
Amount = amount.amount.ToString()
});
}
Statements는 SQL보기의 EF5입니다. LINQ를 실행하여 반환 된 뷰의 금액 합계로 그룹화 된 데이터를 가져온 다음 합쳐서 합계 금액과 함께 반환 된 뷰의 일부 세부 정보를 표시합니다. StatementsToView는 MVC 뷰로 데이터를 가져 오는 내 뷰 모델입니다.
나는 그것이 SQL로 행해질 수 있다고 확신한다. 그리고 나는 그 어떤 경우에도 그렇게 할 것이다. 그러나 또한 거기에 더 멋진 해결책이 있어야하는 것처럼 보인다.
감사합니다.
제이슨.
하자가 무엇을위한 것입니다! –