我正在使用此查询:

     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>();
     }


我得到这个错误:

错误:无法在LINQ to Entities查询中构造实体或复杂类型'Model.DocumentoDTO'。

我正在使用poco,如何在没有所有字段的情况下返回我的pocos集合?

最佳答案

您必须在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
                               });

关于c# - EF4 POCO,我如何过滤ByXX?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4051564/

10-11 06:56