不能将LINQ查询变量转换为数据表
本文关键字:转换 数据表 变量 查询 LINQ 不能 | 更新日期: 2023-09-27 18:10:37
我有以下代码:
var _permiso = from P in _db.clsPermiso
select P;
var _pagina = from P in _db.clsPagina.AsEnumerable()
select P;
var _perfil = from P in _db.clsPerfil
select P;
IEnumerable<DataRow> query = from permiso in _permiso.AsEnumerable()
join perfil in _perfil.AsEnumerable()
on permiso.ID equals perfil.ID
join pagina in _pagina.AsEnumerable()
on permiso.ID equals pagina.ID
where (permiso.Acceso == true) && (permiso.Perfil.ID == Convert.ToInt32(strIDPerfil))
select pagina;
我一直在MSDN页面上收集一些信息,它告诉我使用IEnumerable<DataRow>
,然后,将query
变量指定为这样的DataTable变量:
DataTable _dtResult = query.CopyToDataTable();
但是我在select pagina
语句中得到错误:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<MyApp.Models.clsPagina>' to 'System.Collections.Generic.IEnumerable<System.Data.DataRow>'. An explicit conversion exists (are you missing a cast?)
转换可枚举对象不一定使用基类型使用的隐式转换。在LINQ查询中,您可能必须显式地将结果"pagina"转换为DataRow。
不知道你的类/类型定义,我只是猜测,但我相信你希望你的LINQ查询的最后一行是:
select (DataRow)pagina;
是否有一个特定的原因,您希望结果更原始?