我有以下代码:
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 var,如下所示:
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?)
建议中的提示
答案 0 :(得分:2)
转换枚举不一定使用基类型使用的隐式转换。您可能必须在LINQ查询中将结果“pagina”显式地转换为DataRow。
不知道你的类/类型定义,我只是猜测,但我相信你希望你的LINQ查询的最后一行是:
select (DataRow)pagina;
您是否有特定原因希望结果更原始?