Pregunta

Estoy probando andamios con Entity Framework en Asp.Net MVC 4 (siguiendo Este artículo).Consigo que funcione bien, excepto que aunque mi objeto de dominio permite nulos en un campo y el campo de la base de datos permite nulos, aparece el mensaje de error:

No se puede insertar el valor NULL en la columna 'IsSuccessful', tabla 'MyTestProject.Persistence.TestContext.dbo.Prediction';La columna no permite valores nulos.La ACTUALIZACIÓN falla.La instrucción se ha terminado.

Mi objeto de dominio se ve así:

public class Prediction 
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Title { get; set; }
    [Required]
    public string Description { get; set; }
    public bool? IsSuccessful { get; set; }
}

La página web generada muestra IsSuccessful como un cuadro desplegable con las opciones NotSet, True y False.En la base de datos la columna IsSuccessful permite nulo.Aún así recibo el mensaje de error.Todo funciona bien si elijo Verdadero o Falso (se guarda correctamente en la base de datos), pero no cuando selecciono NotSet.

¿Seguramente debe haber una manera de evitar esto?

Algunos detalles:

  • Visual Studio 2012RC
  • Asp.Net MVC 4
  • EntityFramework.dll versión 5.0.0.0
¿Fue útil?

Solución

Ese mensaje de error parece provenir directamente de SQL Server.Si el servidor dice que la columna no admite valores NULL, entonces la columna no es anulable.Después de todo, él sabe más.

Verifique triplemente que la columna sea realmente anulable en la base de datos.Considere también:

  • ¿Quizás estás mirando una base de datos diferente, con un esquema ligeramente diferente?es decir.uno al que no se le han aplicado los scripts DDL correctos (realmente fácil de hacer)
  • ¿Quizás estás mirando un lugar diferente? objeto en la misma base de datos?En particular, ¿estás quizás mirando Halvard.Prediction, mientras que el código está mirando dbo.Prediction ?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top