在运行时创建数据库

本文关键字:数据库 创建 运行时 | 更新日期: 2023-09-27 18:33:59

到目前为止,我已经使用以下代码动态创建数据库:

var db = new MyEntities(db_name);
if (!db.DatabaseExists()) 
{
    db.CreateDatabase();

其中 MyEntities 扩展了 ObjectContext 类。

在我的新应用程序中,我有相同的代码,但现在MyEntities扩展了DbContext类,并且DatabaseExists()和CreateDatabase()不可用。

现在如何创建数据库?

在运行时创建数据库

因此,下面的代码将执行不同的状态来创建数据库,我相信它会在DbContext被击中时运行。 所以喜欢using (var context = new DbContext())

Database.SetInitializer(new DropCreateDatabaseAlways<DbContext>());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContext>());
Database.SetInitializer(new CreateDatabaseIfNotExists<DbContext>());

这些都是不言自明的。您甚至可以覆盖它们,以便添加种子数据。

把它放在你的Global.asax

如您所见,这些是强类型类。他们接受您继承的DbContext类。

例如:

public class BlogContext : DbContext {}
Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());

上面的代码将删除并始终使用BlogContext作为参考来创建数据库。