es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Advertencia de tipo anónimo de C# cuando las Referencias Nulas están habilitadas

Estoy usando .net 6 con el Tipo de Referencia Nullable habilitado, y cuando uso un tipo anónimo para obtener los resultados de una consulta LINQ, obtengo una Advertencia El cliente no es nulo aquí. CS8619:La nulabilidad del tipo de referencia en el valor del tipo no coincide con el tipo

Aquí está mi código:

var contratos = _dbContext.Contracts.Select(
c => new
{
c.ContractId,
c.Client.Name,
c.Client.Street
}
).Where(c => c.ContractId == contractId).Take(9).ToList();

¿Cuál es la forma adecuada de realizar la consulta y evitar la advertencia?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para evitar la advertencia en el escenario dado, puedes especificar explícitamente el tipo de referencia nullable para la propiedad Street en el tipo anónimo de la siguiente manera:

    var contracts = _dbContext.Contracts
                    .Where(c => c.ContractId == contractId)
                    .Select(c => new { c.ContractId, c.Client.Name, Street = c.Client.Street })
                    .Take(9)
                    .ToList();
    

    Al especificar explícitamente el tipo de referencia nullable para la propiedad Street usando Street = c.Client.Street, la advertencia CS8619 no se activará, ya que el tipo de la propiedad Street en el tipo anónimo coincidirá con el de la propiedad fuente en el modelo de entidad.

Comments are closed.