8
나는이 질문에 대해 여러 가지 변종을 보았지만 아무 대답도 나와 맞지 않습니다.EF Linq 제품 레코드가 반환되지 않을 때의 합계
public double Total
{
get
{
return _Context.Sales.Where(t => t.Quantity > 0)
.DefaultIfEmpty()
.Sum(t => t.Quantity * t.Price);
}
}
를 행이 I는 0을 반환 할 반환되지 않습니다 경우 등은 아래 제품의 합으로 더 복잡한 아무것도 - 그들 대부분은 너무 하나의 열 합계를 시도하고있다. 그러나 행이 반환되지 않으면 .Sum()이 실패합니다. Convert.ToDouble을 삽입하고 null 병합 연산자를 사용하는 여러 가지 옵션이 있지만 여전히 모든 오류가 발생했습니다.
나는 이것을 할 수있는 간단한 방법이 없다고 확신한다 - 구글 벽돌 벽에 머리를 너무 세게 치면 도움이된다!
감사 : 쿼리가 SQL이 모양을 생성
null
을 반환하는 경우 다음 기본 값을 반환 널 병합 연산자를 사용합니다. 그것을 시도했다 - 컴파일러 오류를 수신 : 연산자 '?? 'double'및 'int'유형의 피연산자에는 적용 할 수 없습니다. 하지만 이것은 정확히 내가 습득하려고하는 것입니다 ... – user1622713@ user1622713 nullable 형식으로 캐스팅하면 도움이 될 것입니다 –
@lazyberezovsky는 시퀀스가 비어 있으면 '합계'가 아닌 'null'을 반환하지 않습니다? –