Campos float e real não funciona em meu serviço rest
Fiz um serviço REST com C#. Ele vai ao banco e pega algumas informações para ser consumido em um App Android. O que passa é que o serviço, quando se trata de campos float, ele dá esse erro:
System.InvalidOperationException: 'The specified cast from a materialized 'System.Double' type to the 'System.Single' type is not valid.'
Esse é o método que pega no banco(Sql Server)
Esse é meu serviço:
System.InvalidOperationException: 'The specified cast from a materialized 'System.Double' type to the 'System.Single' type is not valid.'
Esse é o método que pega no banco(Sql Server)
public List<LiberacaoDTO> getAutoriza(int idorcamento) { var lista = contexto.Liberacoes .Where(lib => lib.IdOrcamento == idorcamento) .Select(lib => new LiberacaoDTO { TipoVenda = lib.TipoVenda, IdOrcamento = lib.IdOrcamento, //Vencimento = lib.Vencimento, //Juros = lib.Juros, MaxComi = lib.MaxComi, DataRetorno = lib.DataRetorno, //Entrada = lib.Entrada, //Acrescimo = lib.Acrescimo, //Desconto = lib.Desconto, Mensagem = lib.Mensagem, //DataLib = lib.DataLib, Vendedor = lib.Vendedor, Cliente = lib.Cliente, Filial = lib.Filial }).ToList(); return lista; }
Esse é meu serviço:
public class LiberacaoController : ApiController { AutorizadorContext contexto = new AutorizadorContext(); PedidoLiberacao liberacao = new PedidoLiberacao(); [AcceptVerbs("Get")] public IEnumerable<LiberacaoDTO> getLiberacao() { return liberacao.getAutoriza(1000012093).AsEnumerable().ToList(); //return contexto.Liberacoes.AsEnumerable().ToList(); } }
Pjava
Curtidas 0
Respostas
Pjava
25/08/2017
Percebi que por mais que eu declare em minha model o tipo float ou double ou até Double, o Entity está entendendo que eu tenho um tipo Single e ao pegar no banco o tipo float, ele diz que não é possível a conversão. O que passa que não sei o que fazer, já que é uma interpretação do Entity, assim penso eu.
GOSTEI 0
Pjava
25/08/2017
Não, sei não, mas tem a ver com alguma informação que eu preciso enviar e não sei. Veja o mapeamento que eu fiz no meu DTO. Chegou a funcionar e agora não funciona:
public LiberacaoItensDTO() { Mapper.Initialize(cfg => { cfg.CreateMap<LiberacaoItensDTO, Liberacao>() .ForMember(d => d.DataLib, opt => opt.MapFrom(src => Convert.ToDateTime(DataLib))); cfg.CreateMap<LiberacaoItensDTO, Liberacao>() .ForMember(d => d.Juros, opt => opt.MapFrom(src => Juros.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, Liberacao>() .ForMember(d => d.Desconto, opt => opt.MapFrom(src => Desconto.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, Liberacao>() .ForMember(d => d.Acrescimo, opt => opt.MapFrom(src => Acrescimo.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, Liberacao>() .ForMember(d => d.Vencimento, opt => opt.MapFrom(src => Convert.ToDateTime(Vencimento))); cfg.CreateMap<LiberacaoItensDTO, Liberacao>() .ForMember(d => d.Entrada, opt => opt.MapFrom(src => Entrada.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, ItensLib>() .ForMember(d => d.Qtde, opt => opt.MapFrom(src => Qtde.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, ItensLib>() .ForMember(d => d.Unitario, opt => opt.MapFrom(src => Unitario.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, ItensLib>() .ForMember(d => d.Custo, opt => opt.MapFrom(src => Custo.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, ItensLib>() .ForMember(d => d.CustoDiario, opt => opt.MapFrom(src => CustoDiario.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, ItensLib>() .ForMember(d => d.UltCondicao, opt => opt.MapFrom(src => UltCondicao.ToString("C2"))); cfg.CreateMap<LiberacaoItensDTO, ItensLib>() .ForMember(d => d.Total, opt => opt.MapFrom(src => Total.ToString("C2"))); }); } public int IdLiberacao { get; set; } [DefaultValue(0)] public int IdOrcamento { get; set; } [DefaultValue(0)] public int IdVendedor { get; set; } public string Vendedor { get; set; } public int IdFilial { get; set; } public string Filial { get; set; } [DefaultValue(0)] public float DataLib { get; set; } public int IdCliente { get; set; } public string Cliente { get; set; } public string TipoVenda { get; set; } [DefaultValue(0)] public float Juros { get; set; } [DefaultValue(0)] public float Desconto { get; set; } [DefaultValue(0)] public float Vencimento { get; set; } [DefaultValue(0)] public float Acrescimo { get; set; } [DefaultValue(0)] public float Entrada { get; set; } public string Mensagem { get; set; } public int IdProduto { get; set; } public string Produto { get; set; } [DefaultValue(0)] public float Qtde { get; set; } [DefaultValue(0)] public float Unitario { get; set; } [DefaultValue(0)] public float Custo { get; set; } [DefaultValue(0)] public float CustoDiario { get; set; } [DefaultValue(0)] public float UltCondicao { get; set; } [DefaultValue(0)] public float Total { get; set; } }
GOSTEI 0