6

Uso prima il codice EF e le migrazioni automatiche. Voglio aggiungere una nuova colonna al mio modello - una colonna booleana per presentare "attivo" (vero) o "inattivo" (falso). Come posso aggiungere questa colonna e impostare un valore predefinito ("true") per le righe che già nel DB - con migrazioni automatiche?EF - Valore predefinito per la nuova colonna con migrazione automatica

risposta

6

Tamar, è necessario impostare il valore di default, vedi il prossimo campione:

namespace MigrationsDemo.Migrations 
{ 
    using System; 
    using System.Data.Entity.Migrations; 

    public partial class AddPostClass : DbMigration 
    { 
     public override void Up() 
     { 
      CreateTable( 
       "dbo.Posts", 
       c => new 
        { 
         PostId = c.Int(nullable: false, identity: true), 
         Title = c.String(maxLength: 200), 
         Content = c.String(), 
         BlogId = c.Int(nullable: false), 
        }) 
       .PrimaryKey(t => t.PostId) 
       .ForeignKey("dbo.Blogs", t => t.BlogId, cascadeDelete: true) 
       .Index(t => t.BlogId) 
       .Index(p => p.Title, unique: true); 

      AddColumn("dbo.Blogs", "Rating", c => c.Int(nullable: false, defaultValue: 3)); 
     } 

     public override void Down() 
     { 
      DropIndex("dbo.Posts", new[] { "Title" }); 
      DropIndex("dbo.Posts", new[] { "BlogId" }); 
      DropForeignKey("dbo.Posts", "BlogId", "dbo.Blogs"); 
      DropColumn("dbo.Blogs", "Rating"); 
      DropTable("dbo.Posts"); 
     } 
    } 
} 
+0

EF 7 supporterà valori predefiniti dal modello http://data.uservoice.com/forums/72025-entity-framework-feature -Suggerimenti/suggerimenti/2929682-support-database-default-valori-in-codice-prima – fuchs777