EF4 POCO, как я могу фильтровать ByXX? - PullRequest
2 голосов
/ 29 октября 2010

Я использую этот запрос:

     public IEnumerable.....{
        var query = from d in Context.Documentos
        where d.CodigoEquipamento == documentoDTO.CodigoEquipamento &&
        d.Codigo == tipoEquipamentoDTO.Codigo 
        select new DocumentoDTO 
        {
            Codigo = d.Codigo, 
            CodigoEquipamento = d.CodigoEquipamento 
        }
       return query.AsEnumerable < DocumentoDTO>(); 
     }

и получаю эту ошибку:

ОШИБКА: объект или сложный тип Model.DocumentoDTO не может быть создан в LINQ to Entitiesquery.

Я использую poco, как я могу вернуть коллекцию моих pocos без всех полей?

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Вам нужно будет применить AsEnumerable до Select, чтобы это сработало.В противном случае EF попытается перевести ваш запрос в SQL, в то время как DocumentoDTO не является сущностью - поэтому ошибка.

Context.Documentos.Where(d => d.CodigoEquipamento == documentoDTO.CodigoEquipamento &&
                              d.Codigo == tipoEquipamentoDTO.Codigo).
                   AsEnumerable().
                   Select(d => new DocumentoDTO
                               {
                                   Codigo = d.Codigo,
                                   CodigoEquipamento = d.CodigoEquipamento
                               });
1 голос
/ 29 октября 2010

Вам необходимо вернуть POCO, который не является сопоставленной сущностью.Это может быть «настоящий» POCO или анонимный тип.Но это не может быть сопоставленная сущность.

...