저는 LINQ를 처음 접했기 때문에 구문을 이해하기 시작했지만 Linqer 응용 프로그램을 사용하여 SQL 문을 LINQ 문으로 변환하기로 결정했습니다. 그러나 LINQ 쿼리는 동일한 결과를 생성하지 않습니다. 난 정말 내가이 변환 100 %를 이해하고 말할 수 있지만이 시점이 아니다Linqer SQL을 LINQ로 변환 - 다른 결과
From Costs In
(From Costs In db.Costs
Where
CLng(Costs.ordnumber) = 19374911
Select
Column1 = CType((Costs.linehaul + Costs.accessorial),Decimal?),
ordnumber = Costs.ordnumber,
linehaul = Costs.linehaul,
accessorial = Costs.accessorial,
Dummy = "x"
)
Group Costs By Costs.Dummy Into g = Group
Select New With {
.Column1 = If(CType(g.Sum(Function(p) p.linehaul + p.accessorial),Decimal?) Is Nothing,0,g.Sum(Function(p) p.linehaul + p.accessorial))
}
:
SELECT ISNULL(SUM(linehaul + accessorial), 0) FROM costs
WHERE
ordnumber = 19374911
그것은이 LINQ로 변환 :
은 여기 내 SQL 쿼리입니다. 주어진 ordnumber에 대해 비용이있는 경우 결과는 일관되지만 비용이 주어진 ordnumber에 대해 발견되지 않으면 LINQ는 SQL과 달리 기본값 "0"을 반환하는 대신 빈 결과 집합을 반환합니다.
빈 결과 대신 0을 반환하려면 LINQ에 무엇을 추가해야합니까?
그 쿼리는 필요 이상으로 복잡해 보입니다. – Mansfield
@Mansfield - 전적으로 동의합니다. 실제로 테이블에서 다른 필드를 수동으로 제거했습니다. 확실하지 왜 나는 우리가 더미 필드가 필요하고 그것에 의해 그룹화 이해합니다. LINQ를 손으로 작성하는 방법을 배우면보다 간단한 쿼리에서이를 수행 할 수있을 것이라고 확신합니다. 주어진 시점에 비용 기록이 발견되지 않으면이 시점에서 0을 얻고 싶습니다. –
linq을 SQL에 사용하고 있습니까? 또는 엔티티 프레임 워크? – Mansfield