我正在使用此查询:
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集合?
答案 0 :(得分:1)
您需要返回不是映射实体的POCO。这可能是“真正的”POCO或匿名类型。但它不能是映射的实体。
答案 1 :(得分:1)
您需要在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
});