Я пытаюсь вернуть таблицу данных из запроса linq, но получаю сообщение об ошибке. Я использую .net framework 4.0 в VS2012.return Datatable from linq query
<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, но не повезло. Я не получаю CopyToDataTable в VS2012.
Почему это должно быть DataTable? – OneFineDay
Таблица StaffOfficeAccess не имеет объекта имени офиса. Мне нужно вернуть идентификатор офиса и имя офиса. Может быть набором данных, поскольку мне нужно связать результаты с выпадающим списком. – user1263981