J'ai ajouté l' [Required]annotation de données à l'un de mes modèles dans une application ASP.NET MVC . Après avoir créé une migration, l'exécution de la Update-Databasecommande entraîne l'erreur suivante:
Impossible d'insérer la valeur NULL dans la colonne 'Director', table 'MOVIES_cf7bad808fa94f89afa2e5dae1161e78.dbo.Movies'; La colonne n'autorise pas les valeurs nulles. UPDATE échoue. La déclaration a été terminée.
Cela est dû au fait que certains enregistrements ont NULL dans leurs Directorcolonnes. Comment puis-je changer automatiquement ces valeurs en un directeur par défaut (disons "John Doe")?
Voici mon modèle:
  public class Movie
    {
        public int ID { get; set; }
        [Required]
        public string Title { get; set; }
        [DataType(DataType.Date)]
        public DateTime ReleaseDate { get; set; }
        [Required]
        public string Genre { get; set; }
        [Range(1,100)]
        [DataType(DataType.Currency)]
        public decimal Price { get; set; }
        [StringLength(5)]
        public string Rating { get; set; }
        [Required]     /// <--- NEW
        public string Director { get; set; }
    }
et voici ma dernière migration:
public partial class AddDataAnnotationsMig : DbMigration
{
    public override void Up()
    {
        AlterColumn("dbo.Movies", "Title", c => c.String(nullable: false));
        AlterColumn("dbo.Movies", "Genre", c => c.String(nullable: false));
        AlterColumn("dbo.Movies", "Rating", c => c.String(maxLength: 5));
        AlterColumn("dbo.Movies", "Director", c => c.String(nullable: false));
    }
    public override void Down()
    {
        AlterColumn("dbo.Movies", "Director", c => c.String());
        AlterColumn("dbo.Movies", "Rating", c => c.String());
        AlterColumn("dbo.Movies", "Genre", c => c.String());
        AlterColumn("dbo.Movies", "Title", c => c.String());
    }
}