VB.NET으로 C# Linq 문을 변환하는 데 문제가 있습니다. 다음 진술을 변환해야합니다. 나는 i.Sum (v => v) 부분에 매달려있다. 여기 Linq to SQL - VB.NET 도움말로 C# 변환
from p in Products
from u in Users
let i = (from op in OrderProducts
where op.Order.User == u && op.Product == p
select op.ProductQty)
let quant = i.Count() == 0 ? 0 : i.Sum(v=>v)
select new {p.ProductName, u.UserName, Quantity = quant}
내가 VB를 위해 가지고있는,하지만 만약 (i.Count() = 0, 0, i.Sum는()) _ 문은 매개 변수가 집계 연산자 '합'런타임 동안 예상 이상 지원되지 않습니다 말한다 (컴파일 타임 오류 없음). 또한 i.Sum (Function (q) i.ProductQty)도 작동하지 않습니다 (sum은이 인수로 호출 할 수 없음).
From p In Products _
From u In Users _
Let i = (From op In OrderProducts _
Where op.Order.User.UserID = u.UserID And op.Product.ProductID = p.ProductID _
Select op.ProductQty) _
Let Qty = _
If(i.Count() = 0, 0, i.Sum()) _
Select New With {p.ProductName, u.Username, Qty}
VB.NET으로 변환하여 작동하는 방법에 대한 아이디어가 있으십니까? 감사! C#에서
정확한 번역을 원할 경우 C#의 '&&'는'And'가 아닌'AndAlso'와 동일합니다. 비슷하게'||'는'OrElse'가 아니라'OrElse'와 같습니다. –