2010-06-24 3 views
2

Я бегу в эту проблемуLINQ в VB InvalidCastException

System.InvalidCastException: Невозможно привести объект типа 'System.Data.Linq.DataQuery 1[Student]' to type 'System.Collections.Generic.List 1 [Student]

Когда я отлаживать эту функцию:

Public Shared Function SearchStudent(ByVal firstname As String) As List(Of Student) 

    Dim db As New DemoDataContext() 
    Dim query = From st In db.Students _ 
       Where (st.FirstName.StartsWith(firstname)) _ 
       Select st 

    Return CType(query, List(Of Student)) 


End Function 

Мой проект установка свойств: Вариант явного включения и Option Strict On

Я хочу, чтобы вернуть список студента из запроса. Может кто-нибудь мне помочь? Спасибо.

ответ

3
Dim query = (From st In db.Students _ 
      Where (st.FirstName.StartsWith(firstname)) _ 
      Select st).ToList() 
+0

query.ToList (Of Student) также выполнит эту работу. –

+0

Я пробовал этот вариант, прежде чем я разместил этот вопрос. Но я получил эту ошибку. Метод расширения «Public Function ToList() As System.Collections.Generic.List (Of TSource)», определенный в «System.Linq.Enumerable», не является общим (или не имеет параметров свободного типа), и поэтому не может быть аргументы типа – Narazana

+0

Как насчет .ToList()? Я думаю, вы можете опустить параметр типа, поскольку он может быть выведен из использования. –

Смежные вопросы