C# 在运行时创建数据库
到目前为止,我一直使用以下代码动态创建数据库:C# 在运行时创建数据库,c#,entity-framework,C#,Entity Framework,到目前为止,我一直使用以下代码动态创建数据库: var db = new MyEntities(db_name); if (!db.DatabaseExists()) { db.CreateDatabase(); 其中MyEntities扩展了ObjectContext类 在我的新应用程序中,我有相同的代码,但现在MyEntities扩展了DbContext类,DatabaseExists()和CreateDatabase()不可用 现在如何创建数据库?因此下面的代码将执行不同的策略
var db = new MyEntities(db_name);
if (!db.DatabaseExists())
{
db.CreateDatabase();
其中MyEntities扩展了ObjectContext类
在我的新应用程序中,我有相同的代码,但现在MyEntities扩展了DbContext类,DatabaseExists()和CreateDatabase()不可用
现在如何创建数据库?因此下面的代码将执行不同的策略来创建数据库,我相信它将在点击
DbContext
时运行。就像使用(var context=new DbContext())
上述代码将删除并创建数据库,始终使用
BlogContext
作为参考。还有database.CreateIfNotExists()代码>可以从DbContext
类运行,但我仍然会选择答案。该解决方案更灵活。是的,我认为当您在DbContext
中执行某些内容时,它将开始执行SQL脚本,因此您将看到创建了Management Studio表(显然是在刷新数据库之后)。您能看到以下内容吗:
Database.SetInitializer(new DropCreateDatabaseAlways<DbContext>());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContext>());
Database.SetInitializer(new CreateDatabaseIfNotExists<DbContext>());
public class BlogContext : DbContext {}
Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());