Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 21850|Resposta: 1

[Fonte] Cast to value type "System.Decimal" falhou...

[Copiar link]
Publicado em 11/03/2019 10:02:24 | | | |
O cast para o tipo de valor "System.Decimal" falha porque o valor materializado é nulo. O parâmetro genérico ou consulta do tipo de resultado deve ser de um tipo que possa ser nulo.
1. Ao usar EF para acessar a soma de banco de dados, tais exceções são frequentemente encontradas

Uma exceção não tratada do tipo "System.InvalidOperationException" ocorre em EntityFramework.dll



Código de Exceção 1:



Código de exceção 2:

2. Razões:

Motivo para o lançamento: Os dados filtrados do banco de dados de acordo com as condições estão vazios, e então a soma gera uma exceção.

Solução 1:Após os campos de filtro ou linhas de dados serem recolhidos na memória com base nos critérios, eles são somados


Solução 2:Isso pode ser feito se a soma dos resultados precisarem ser especificada como nula quando as linhas de dados do filtro não existirem com base na condição



Solução 3 (recomendada):Use DefaultIfEmpty()








Anterior:Pensamento Bayesiano: Método de Aprendizagem em Python para Modelagem Estatística, versão PDF em chinês
Próximo:A exceção é resolvida injetando a instância RedisTemplate no SpringBoot
Publicado em 11/03/2019 11:38:22 |
Estou usando a opção três
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com