2010-07-13 3 views
0

Im, используя следующую функцию, чтобы вернуть SelectList. Мне нужен пользовательский формат в Descr, но замена Key.ToString() на Key.ToString («DD/MM/YY») делает мне ошибку «Метод» System.String ToString (System.String) 'не поддерживает перевод на SQL. ". Как я могу использовать пользовательский формат даты на Descr?Пользовательский формат даты от Linq до SQL-запроса

Public Function ReturnDates(ByVal Param_Pesq_Cod As Integer) As SelectList 
     Dim Qry = From E In DB.Execs _ 
     Where E.Pesq_Cod = Param_Pesq_Cod _ 
     Group E By Key = E.DataHora.Date _ 
     Into Group Order By Key Select New With {.Descr = Key.ToString(), .Val = Key} 

     Return New SelectList(Qry, "Val", "Descr") 
    End Function 

ответ

2

Если вы поместите преобразование в запрос LINQ to SQL, он попытается создать SQL-запрос из него. Сначала получите результат, ознакомьтесь со списком дат и сделайте преобразование, используя LINQ to Objects.

Я думаю, что это выглядит следующим образом:

Public Function ReturnDates(ByVal Param_Pesq_Cod As Integer) As SelectList 
    Dim Qry = From E In DB.Execs _ 
    Where E.Pesq_Cod = Param_Pesq_Cod _ 
    Group E By Key = E.DataHora.Date _ 
    Into Group Order By Key Select Key 

    Dim List = _ 
    Qry.ToList() _ 
    .Select(Function(d) New With {.Descr = d.ToString(), .Val = d}) 

    Return New SelectList(List, "Val", "Descr") 
End Function 
Смежные вопросы