viernes, 12 de noviembre de 2021

Error "Data is Null. This method or property cannot be called on Null values" en Entity Framework 6

 Descripción del problema

Acabas de instalar VS2022 y .NET6 SDK, creas un proyecto que accede a una base de datos  Para generar los modelos y mapeos usas ingeniería inversa, por ejemplo Entity Framework Generator

Creas un controlador API Get para obtener una lista de fabricas desde Blazor. ¡Oh sorpresa! La cosa no funciona. 

El mensaje de error es: "Data is Null. This method or property cannot be called on Null values"

Resolución

Debes deshabilitar Admite valores NULL en Compilación/general del proyecto donde tienes los modelos y dbcontext para acceder a la base de datos.

Explicación

En C#8 cuando habilitas la característica NRT debes usar string? para una propiedad de cadena que admita nulos y string para una que no los admita.

EF6 CORE implementa NRT mediante anotaciones, pero los generadores databasefirst no asocian el tipo string? a las propiedades mapeadas a columnas varchar nullables.


No hay comentarios: