Revisamos cada uno de los posts de nuestro espacio con el objetivo de mostrarte en todo momento información más veraz y actualizada.
Solución:
Gire el Pluralization On
. El problema es que su objeto modelo está usando un nombre singular (Pupil
) convención, mientras que en su base de datos está utilizando nombres en plural Pupils
con s
.
ACTUALIZAR
Esta publicación muestra cómo puede activarlo o desactivarlo. Un extracto relevante de esa publicación:
Para activar y desactivar la pluralización
-
En el menú Herramientas, haga clic en Opciones.
-
En el cuadro de diálogo Opciones, expanda Herramientas de base de datos. Nota: Seleccione Mostrar todas las configuraciones si el nodo Herramientas de base de datos no está visible.
-
Haga clic en Diseñador de O/R.
-
Establezca Pluralización de nombres en Habilitado = Falso para configurar O/R Designer de modo que no cambie los nombres de las clases.
-
Establezca Pluralización de nombres en Habilitado = Verdadero para aplicar reglas de pluralización a los nombres de clase de los objetos agregados a O/R Designer.
ACTUALIZAR 2
Pero tenga en cuenta que debe evitar los nombres en plural. Puede leer aquí cómo hacerlo (lo citaré aquí, en caso de que el enlace se rompa).
(…) Cuando trabaja con el enfoque Entity Framework Code First, está creando sus tablas de base de datos a partir de sus clases modelo. Por lo general, Entity Framework creará tablas con nombres pluralizados. eso significa que si tiene una clase modelo llamada PhoneNumber, Entity Framework creará una tabla para esta clase llamada “PhoneNumbers”. Si desea evitar el nombre pluralizado y quiere un nombre singular como Cliente, puede hacerlo así En su clase DBContext, anule el método “OnModelCreating” así (…)
(…) Tener este método anulado evitará la creación de tablas con nombres en plural. Ahora creará una tabla llamada “PhoneNumber”, no “PhoneNumbers” (…)
Podría deberse a una conversión de datos de .NET a SQL, por ejemplo, un error de conversión de fecha y hora. para mi fue un null referencia a una columna de fecha y hora.
Además, ese no es un mensaje de error exacto. Puede ver el error exacto en watch enException.InnerException.InnerException -> ResultView.
Para que conste, tuve este problema y fue un error estúpido de mi parte. Mi problema era la falta de coincidencia del tipo de datos. El tipo de datos en la tabla de la base de datos y las clases de C# deben ser iguales…