Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# 重置ASP.NET标识数据库_C#_Asp.net_Sql Server_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 重置ASP.NET标识数据库

C# 重置ASP.NET标识数据库,c#,asp.net,sql-server,asp.net-mvc,entity-framework,C#,Asp.net,Sql Server,Asp.net Mvc,Entity Framework,我有一个使用ASP.NET标识的ASP.NET MVC应用程序。我想添加一个重置数据库的功能。下面是Identity当前使用的数据库布局 我已经创建了一个控制器,其中包含重置数据库的代码 public ActionResult GenerateDatabase() { //Drop all tables //Readd all tables return RedirectToAction("Register", "Account"); } 但我对通过C#使用SQL S

我有一个使用ASP.NET标识的ASP.NET MVC应用程序。我想添加一个重置数据库的功能。下面是Identity当前使用的数据库布局

我已经创建了一个控制器,其中包含重置数据库的代码

public ActionResult GenerateDatabase()
{
    //Drop all tables
    //Readd all tables
    return RedirectToAction("Register", "Account");
}

但我对通过C#使用SQL Server还是相当陌生的。如何通过C#控制器重置数据库(如拖放表并读取它们)?

您可以通过
DbContext的
数据库
属性执行所有操作:

要删除数据库,只需使用:

yourDbContextInstance.Database.Delete();
yourDbContextInstance.Database.Create(); // Also check CreateIfNotExists()
要重新创建数据库,只需使用:

yourDbContextInstance.Database.Delete();
yourDbContextInstance.Database.Create(); // Also check CreateIfNotExists()

只需使用ADO.NETSQLCommand和正确的SQL查询即可删除数据库。然后,如果数据库不存在,您需要告诉DbContext重新创建数据库。您是否可以发布代码,按照现在的状态重新创建数据库?这是否会使用标识所需的所有表重新创建数据库,如图所示?是的。它将创建在DbContext中映射的所有表。上下文知道标识实体,然后它将创建它们。很遗憾,尽管它抛出此错误,但无法删除数据库“aspnet-VDNA-2016102811306”,因为它当前正在使用。请确保您没有在打开某些表或类似的情况下使用Sql Server Management Studio。