0

조건부 투영 쿼리를 사용하여 현금 및 신용 카드의 총계를 별도로 계산해야하는 요구 사항이 있습니다. 내 아래 코드가 작동하지 않으며 그것은 내게 데이터 형식 불일치 오류를 제공합니다. 그것의 진짜 조건은 십진법과 거짓 반환 통화를 반환합니다. 0.0M이 10 진수를 나타내는 이유는 확실하지 않습니다. 아무도 나를 도와 주실 수 있습니까?NHIbernate 조건부 프로젝션 쿼리

RefundTemplate.Criteria.SetProjection(
         Projections.ProjectionList() 

         .Add(Projections.Sum(Projections.Conditional 
          (Restrictions.Eq("PaymentType", "CK"), 
            Projections.Property("Gross"), Projections.Constant(0.0M))), "CashRefund") 
         .Add(Projections.Sum(Projections.Conditional 
          (Restrictions.Eq("PaymentType", "CC"), 
            Projections.Property("Gross"), Projections.Constant(0.0M))), "CreditRefund")); 

답변

3

사용할 형식을 명시 적으로 지정할 수 있습니다. 예를 들어 : (Projections.Property를 내가 문자열을 주조하는 데 필요한 http://elliottjorgensen.com/nhibernate-api-ref/NHibernate/NHibernateUtil.html 내 경우

+0

.... Projections.Conditional ( Restrictions.IsNotNull :

Projections.Constant(0.0M, NHibernateUtil.Decimal) 

여기 NHibernateUtil 클래스에 대한 설명서를 참조하십시오 투영법 .Constant (string.Empty, NHibernateUtil.String) ), 투영법. 캐스트 (NHibernateUtil.String, Projections.Property() => model.Name)), 투영법. –