使用nuget 添加EntityFramework 引用
引入命名空間
using System.Data.Entity;
using System.Data.Entity.Migrations;
關(guān)鍵代碼
internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
{
public MainDbMigrationsConfiguration()
{
//默認(rèn)情況下不會(huì)自動(dòng)遷移數(shù)據(jù)庫(kù)結(jié)構(gòu)
//設(shè)置為true則自動(dòng)遷移數(shù)據(jù)庫(kù)結(jié)構(gòu)
AutomaticMigrationsEnabled = true;
}
}
完整的類(lèi)大概是這個(gè)樣子
using System.Data.Entity;
using System.Data.Entity.Migrations;
namespace ManageSystem.Core
{
public class MainDbContext : DbContext
{
public MainDbContext() : base()
{
Database.SetInitializer<MainDbContext>(new MigrateDatabaseToLatestVersion<MainDbContext, MainDbMigrationsConfiguration>());
}
public MainDbContext(string connectionName) : base(connectionName)
{
Database.SetInitializer<MainDbContext>(new MigrateDatabaseToLatestVersion<MainDbContext, MainDbMigrationsConfiguration>());
}
internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
{
public MainDbMigrationsConfiguration()
{
AutomaticMigrationsEnabled = true;
}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
}
}
}
這種方式主要是將原本獨(dú)立出來(lái)的類(lèi)合并到DbContext中來(lái).
更常規(guī)一點(diǎn)的做法是把下面這段代碼獨(dú)立出來(lái),放在一個(gè)類(lèi)里面方便后期維護(hù)
internal sealed class MainDbMigrationsConfiguration: DbMigrationsConfiguration<MainDbContext>
{
public MainDbMigrationsConfiguration()
{
AutomaticMigrationsEnabled = true;//任何Model Class的修改將會(huì)直接更新DB
AutomaticMigrationDataLossAllowed = true;
}
}