Не могу преобразовать LINQ Query var в DataTable - PullRequest
2 голосов
/ 07 октября 2011

У меня есть следующий код:

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?)

Спасибо за совет

1 Ответ

2 голосов
/ 07 октября 2011

Преобразование перечислимых не обязательно использует неявные преобразования, используемые базовыми типами. Скорее всего, вам придется явно привести результат "pagina" в качестве DataRow в вашем запросе LINQ.

Не зная вашего определения класса / типа, я только догадываюсь, но я полагаю, что вы хотите, чтобы ваша последняя строка вашего запроса LINQ была:

select (DataRow)pagina;

Есть ли конкретная причина, по которой вы хотите, чтобы результат был более примитивным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...