using System; using System.Data.Entity; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; public partial class DemoDbContext : DbContext { public DemoDbContext() : base("name=DemoDbContext") { //默认的初始化器。这种初始化器在第一次运行程序时会创建数据库,再次运行不会再创建新的数据库。但是如果我们改变了领域类,运行程序时会抛出一个异常 Database.SetInitializer(new CreateDatabaseIfNotExists<DemoDbContext>()); //如果领域类发生了改变,删除以前的数据库,然后重建一个新的。采用这种初始化器不用再担心领域类改变影响数据库架构的问题。 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DemoDbContext>()); //每次运行程序都会删除以前的数据库,重建新的数据库。如果在开发过程中每次都想使用最新的数据库,那么可以采用这种初始化器。 Database.SetInitializer(new DropCreateDatabaseAlways<DemoDbContext>()); } public DbSet<Users> Users { get; set; } public DbSet<UsersExtend> UsersExtend { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { } }