2012-03-23 2 views
0

현재 그래프 작성 용 플러그인과 함께 사용할 XML을 작성해야하는 프로젝트를 진행 중입니다. 나는 XML 리터럴을 사용하고 있는데 데이텀 Date 형이며,XML 리터럴 형식 날짜

   Dim x As XElement = _ 
       <chart caption='Aantal aanvragen' xAxisName='Dag' yAxisName='Aantal'> 
        <%= From d In dailies Select _ 
         <set label=<%= d.Datum %> value=<%= d.Aantal %>> 
         </set> %> 
       </chart> 

일간지 그냥 더 복잡한 LINQ 쿼리입니다 다음과 같이 LINQ는 SQL로? 그리고 Int 타입의 Aantal.

내 문제는 어떻게 날짜 형식을 올바르게 지정하는 것입니다. 저를주는 불행하게도

<%= CDate(d.Datum).ToString("d MMM yyyy") %> 

:

System.NotSupportedException : 나는 그 같은 것이라고 생각 방법 '선택 System.String ToString (선택 System.String)을'SQL에 지원되는 변환이 없습니다.

누구에게도 해결책이 있습니까? 미리 감사드립니다.

답변

2

XML 콘텐츠를 구성하려면 AsEnumerable()을 추가하여 데이터를 SQL 서버에서 가져올 수 있습니다.

  Dim x As XElement = _ 
      <chart caption='Aantal aanvragen' xAxisName='Dag' yAxisName='Aantal'> 
       <%= From d In dailies.AsEnumerable() Select _ 
        <set label=<%= d.Datum %> value=<%= d.Aantal %>> 
        </set> %> 
      </chart> 

이렇게하면 ToString() 메서드 호출을 SQL로 변환 할 때 발생하는 문제를 피할 수 있습니다.

그러나이 경우 실제로 테이블 열에 null 값이 포함되어있는 경우 일부 항목에 대해 Nothing으로 표시되는 경우 N 값을 실제로 포함하는 경우 해당 항목을 제외해야합니다.

From d in dailies.AsEnumerable() Where d.Datum.HasValue Select ... 

또는 If 연산자를 사용하여 기본값을 출력하십시오. 하지만 그것은 VB에서 LINQ to XML 문제보다 VB 문제이고 VB는 내 힘이 아니므로 이미 정렬되어 있습니다.

+0

감사합니다. AsEnumerable이 트릭을 수행했습니다. – Rene