Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时创建数据库_C#_Entity Framework - Fatal编程技术网

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>());