我想從linq查詢返回數據表,但得到錯誤消息。我在VS2012中使用.NET Framework 4.0。返回從linq查詢數據表
<Table>
Public Class StaffOfficeAccess
<Column(CanBeNull:=False, IsPrimaryKey:=True, IsDbGenerated:=True)>
Public Property StaffOfficeAccessID As Int32 = 0
<Column>
Public Property StaffID As Int32 = 0
<Column>
Public Property OfficeID As Int32 = 0
<Column(IsVersion:=True, IsDbGenerated:=True)>
Public Property Version As Byte()
End Class
'----------------------------'
Public Function GetByStaffID(ByVal staffID As Int32) As DataTable
Dim query As IEnumerable(Of DataRow) = CType((From oa In db.StaffOfficeAccess.AsEnumerable() _
Join o In db.Office.AsEnumerable() On oa.OfficeID Equals o.OfficeID _
Select oa.OfficeID,
o.OfficeName), Global.System.Collections.Generic.IEnumerable(Of Global.System.Data.DataRow))
Dim table As DataTable = System.Data.DataTableExtensions.CopyToDataTable(query)
Return table
End Function
「----- --error ----------'
無法投射類型爲'd__61 4[staff.Objects.StaffOfficeAccess,AMIS.Objects.Office,System.Int32,VB$AnonymousType_0
2 [System.Int32,System.String]]'的對象來鍵入'System.Collections.Generic.IEnumerable `1的System.Data.DataRow]」。
我試過這裏的例子https://msdn.microsoft.com/en-us/library/bb396189%28v=vs.110%29.aspx但沒有運氣。我沒有在VS2012中獲得CopyToDataTable。
爲什麼它必須是一個DataTable? – OneFineDay
StaffOfficeAccess表沒有辦公室名稱實體。我需要返回辦公室ID和辦公室名稱。可以是數據集,因爲我需要將結果與下拉列表控件綁定。 – user1263981