简体   繁体   中英

Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'

I'm trying to assign the value to dtLancamentoReceitaDespesaDataVencimento and the condition is: if value dtLancamentoReceitaDespesaDataPagamento is null assigns the value dtLancamentoReceitaDespesaDataVencimento but assigns the value of dtLancamentoReceitaDespesaDataPagamento. But is giving the following error:

Can not implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists (are you missing a cast?)

dtLancamentoReceitaDespesaDataVencimento = 
   lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento == null ? 
   lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataVencimento : 
   lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento     

LINQ:

    public List<LancamentoReceitaDespesa> GetLancamentoReceitaDespesaByintCodigoGrupoUsuarioByParametro(int intCodigoGrupoUsuario, int mes, int ano)
    {
        return (from lancamentoReceitaDespesa in _DatabaseContext.LancamentoReceitaDespesa
                where lancamentoReceitaDespesa.intCodigoGrupoUsuario == intCodigoGrupoUsuario &&
                lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataVencimento.Month == mes &&
                lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataVencimento.Year == ano
                select new LancamentoReceitaDespesa
                {
                    intLancamentoReceitaDespesaId = lancamentoReceitaDespesa.intLancamentoReceitaDespesaId,
                    intCategoriaId = lancamentoReceitaDespesa.intCategoriaId,
                    strLancamentoReceitaDespesaCartaoCreditoContaBancaria = lancamentoReceitaDespesa.strLancamentoReceitaDespesaCartaoCreditoContaBancaria,
                    intContaContabilId = lancamentoReceitaDespesa.intContaContabilId,
                    intFormaPagamentoId = lancamentoReceitaDespesa.intFormaPagamentoId,
                    intClienteFornecedorId = lancamentoReceitaDespesa.intClienteFornecedorId,
                    intEventoId = lancamentoReceitaDespesa.intEventoId,
                    strLancamentoReceitaDespesaDescricao = lancamentoReceitaDespesa.strLancamentoReceitaDespesaDescricao,
                    strLancamentoReceitaDespesaDocumento = lancamentoReceitaDespesa.strLancamentoReceitaDespesaDocumento,
                    strLancamentoReceitaDespesaTipoLancamento = lancamentoReceitaDespesa.strLancamentoReceitaDespesaTipoLancamento,
                    dtLancamentoReceitaDespesaDataVencimento = lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento == null ? lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataVencimento : lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento,
                    decLancamentoReceitaDespesaValor = lancamentoReceitaDespesa.decLancamentoReceitaDespesaValor,
                    dtLancamentoReceitaDespesaDataPagamento = lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento,
                    decLancamentoReceitaDespesaValorPago = lancamentoReceitaDespesa.decLancamentoReceitaDespesaValorPago,
                    dtLancamentoReceitaDespesaDataRecebimento = lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataRecebimento,
                    decLancamentoReceitaDespesaValorRecebido = lancamentoReceitaDespesa.decLancamentoReceitaDespesaValorRecebido,
                    dtLancamentoReceitaDespesaDataCompra = lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataCompra,
                    intCodigoGrupoUsuario = lancamentoReceitaDespesa.intCodigoGrupoUsuario,
                    bitLancamentoReceitaDespesaPagarAutomatico = lancamentoReceitaDespesa.bitLancamentoReceitaDespesaPagarAutomatico,
                    bitLancamentoReceitaDespesaLancamentoPago = lancamentoReceitaDespesa.bitLancamentoReceitaDespesaLancamentoPago,
                    dtLancamentoReceitaDespesaDataAlteracao = lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataAlteracao,
                    dtLancamentoReceitaDespesaDataCriacao = lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataCriacao
                }).ToList();

    }

If dtLancamentoReceitaDespesaDataVencimento is of DateTime type, then just add nullable type Value selector at the end:

dtLancamentoReceitaDespesaDataVencimento = 
  lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento == null ? 
  lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataVencimento : 
  lancamentoReceitaDespesa.dtLancamentoReceitaDespesaDataPagamento.Value

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM