使用linq和silverlight出现此错误....我正在使用POCO .... DTO = POCO
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”。
public class TipoEquipamentoDTO
{
[Key]
public virtual int Codigo { get; set; }
public virtual string Tipo { get; set; }
public virtual string UsuarioInclusao { get; set; }
public virtual DateTime DataHoraInclusao { get; set; }
public virtual string UsuarioAlteracao { get; set; }
public virtual DateTime DataHoraAlteracao { get; set; }
public ICollection<DocumentoDTO> DocumentoDTO { get; set; }
}
public class DocumentoDTO
{
[Key]
public virtual int Codigo { get; set; }
public virtual int CodigoTipo { get; set; }
public virtual int CodigoEquipamento { get; set; }
public virtual byte[] Documento { get; set; }
public virtual string Nome { get; set; }
public virtual string UsuarioInclusao { get; set; }
public virtual DateTime DataHoraInclusao { get; set; }
public virtual string UsuarioAlteracao { get; set; }
public virtual DateTime DataHoraAlteracao { get; set; }
public TipoEquipamentoDTO TipoEquipamentoDTO { get; set; }
}
答案 0 :(得分:1)
DocumentoDTO
不是实体框架类,因此您无法选择DocumentoDTO
类型。您必须首先通过仅使用Entity Framework类调用query.ToList()
来执行查询。之后,您可以选择DocumentoDTO
:
public IEnumerable.....
var query = from d in Context.Documentos
where d.CodigoEquipamento == documentoDTO.CodigoEquipamento &&
d.Codigo == tipoEquipamentoDTO.Codigo
select new Documento { // Documento is in the context
Codigo =d.Codigo,
CodigoEquipamento = d.CodigoEquipamento
});
return query.ToList().Select(d => new DocumentoDTO
{
Codigo = d.Codigo,
CodigoEquipamento = d.CodigoEquipamento
});