XML литералы формат даты - PullRequest
       12

XML литералы формат даты

0 голосов
/ 23 марта 2012

В настоящее время я работаю над проектом, который требует от меня создания XML для использования с графическим плагином. Я использую литералы XML и LINQ to SQL следующим образом

                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>

Dailies - это более сложный запрос Linq, тип данных имеет тип Date? и Aantal типа Int.

Теперь моя проблема в том, как правильно отформатировать дату. Я думал, что это будет что-то вроде:

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

К сожалению, это дает мне:

System.NotSupportedException: у метода 'System.String ToString (System.String)' нет поддерживаемого перевода в SQL.

У кого-нибудь есть решение этой проблемы? Заранее спасибо.

1 Ответ

2 голосов
/ 24 марта 2012

Если вы хотите создать содержимое XML, вы можете убедиться, что данные извлекаются с сервера SQL, добавив AsEnumerable() например,

            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.

Вам нужно будет решить, однако, если этот столбец таблицы действительно содержит нулевые значения, соответственно, если вы действительно получаете d.Datum как Ничто для некоторых элементов, что вы хотите сделать в этом случае, либо убедитесь, что вы исключаете эти элементы, например,

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

или используйте оператор If для вывода некоторых значений по умолчанию. Но это скорее проблема VB, чем проблема LINQ to XML, и VB - не моя сила, так что, возможно, вы уже разбирались с этим самостоятельно.

...