BlogEntities这个类从DbContext继承,负责数据库的更新.
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BlogEntities>());
这段代码表示:当具体的类发生变化时将重新删除现有的数据库,重新生成新的数据库.
测试:
- 修改TestUser类中的TestUserName为updateUserName
- 执行程序
- TestUsers表字段为updateUserId(重新创建的新表)
- Blogs表原来的数据不见了,说明是删除了数据库,重新创建的新数据库.
问题: 在测试数据库中做这样的操作是允许的,但在正式的生产环境将十分危险.
namespace EfStudy { public class BlogEntities:DbContext { static BlogEntities() { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<BlogEntities>()); } public DbSet<Blog> Blogs { get; set; } public DbSet<BlogType> BlogTypes { get; set; } public DbSet<TestUser> TestUsers { get; set; } } }