2010-06-24 36 views
2

我遇到這個問題LINQ在VB InvalidCastException的

System.InvalidCastException:無法轉換類型的對象 'System.Data.Linq.DataQuery 1[Student]' to type 'System.Collections.Generic.List 1 [學生]'

當調試這個函數:

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 

我的項目屬性設置:選擇明確的ON和Option嚴格ON

我想從查詢返回學生的列表。誰能幫我?謝謝。

回答

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

query.ToList(Of Student)也會做這個工作。 – 2010-06-24 04:43:39

+0

我在發佈此問題之前嘗試了該選項。但是我得到這個錯誤擴展方法'Public Function ToList()As System.Collections.Generic.List(Of TSource)''System.Linq.Enumerable''中定義的不是通用的(或沒有自由類型參數),所以不能有類型參數 – Narazana 2010-06-24 05:57:49

+0

.ToList()?我認爲你可以省略類型參數,因爲它可以從使用中推斷出來。 – 2010-06-24 06:11:44