1. 程式人生 > >EF Code First Model欄位改變資料庫的欄位也跟著自動改變

EF Code First Model欄位改變資料庫的欄位也跟著自動改變

在上下文中這樣寫程式碼

public class Context:DbContext
{
    public Context():base("UserDB")
    {
        //自動建立表,如果Entity有改到就更新到表結構
        Database.SetInitializer<Context>(new MigrateDatabaseToLatestVersion<Context, ReportingDbMigrationsConfiguration>());
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        //modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//這句是不要將EF生成的sql表名不要被複數 就是表名後面不要多加個S
    }

    internal sealed class ReportingDbMigrationsConfiguration : DbMigrationsConfiguration<Context>
    {
        public ReportingDbMigrationsConfiguration()
        {
            AutomaticMigrationsEnabled = true;//任何Model Class的修改將會直接更新DB
            AutomaticMigrationDataLossAllowed = true;
        }
    }

    public DbSet<UserInfo> UserInfo { get; set; }
}