2011-04-06 19 views

Respuesta

6

Su modelo tiene que coincidir con la base de datos; si la base de datos puede tener un valor NULL, debería usar un bool nulo en su modelo; sin embargo, puede sobrescribir el setter para esa propiedad en su modelo para convertir un NULL en un valor falso :

public class Foo 
{ 
    private bool _bar; 
    public bool? Bar 
    { 
     get { return _bar; } 
     set 
     { 
      if (!value.HasValue) 
      { 
       _bar = false; 
      } 
      else 
       _bar = value.Value; 
     } 
    } 
} 

Lo ideal sería que usted debe evitar esta situación y establecer un valor predeterminado en su columna de la base de datos - entonces usted no necesita esta solución.

5

Cuando se agrega una migración para que sus cambios de bases de datos, actualizar la clase de migración para establecer el valor predeterminado antes de actualizar la base de datos:

AddColumn("Jobs", "IsAdvertisingRequired", c => c.Boolean(nullable: false, defaultValueSql: "0")); 

Esto se traducirá en el siguiente SQL:

ALTER TABLE [Jobs] ADD DEFAULT ((0)) FOR [IsAdvertisingRequired] 
GO 
Cuestiones relacionadas