设置:实体框架代码首先到新数据库。
场景:我在玩 EF,我在我的数据库中添加了一堆元素。然后我更改实体模型,虽然我知道我可以进行迁移,但我只想从头开始,基本上从地球上清除数据库。
默认使用的数据库是 (localdb)\v11.0。
我的问题是:
我可以去某个地方只删除一个文件,或者启动某种管理器来删除该数据库并从头开始吗?
设置:实体框架代码首先到新数据库。
场景:我在玩 EF,我在我的数据库中添加了一堆元素。然后我更改实体模型,虽然我知道我可以进行迁移,但我只想从头开始,基本上从地球上清除数据库。
默认使用的数据库是 (localdb)\v11.0。
我的问题是:
我可以去某个地方只删除一个文件,或者启动某种管理器来删除该数据库并从头开始吗?
只需使用管理员权限进入命令提示符并键入:
//list the instancies
sqllocaldb i
//stop selected instance
sqllocaldb p "selected instance"
//delete
sqllocaldb d "selected instance"
//recreate or create new one
sqllocaldb c "new instance"
从 Visual Studio => 单击查看 => SQL Server 对象资源管理器 => 右键单击所需的数据库并选择删除,它将被删除或做任何你想做的事情
如果您使用的是 Entity Framework Core,则可以在包管理器控制台中输入:
PM> Drop-Database
它将删除当前数据库。这个命令会告诉你是哪一个:
PM> Get-DbContext
这也很方便:
PM> Get-Help about_EntityFrameworkCore
除了包管理器控制台,您还可以通过 PowerShell 或命令提示符使用 dotnet CLI:
PS> dotnet ef database drop
确保首先通过运行以下命令安装 EF 扩展:
dotnet tool install --global dotnet-ef
我认为您想删除单个数据库,而不是 LocalDB 实例。如果是这样,只需发出 drop database 命令:
DROP DATABASE databasename;
您可以从sqlcmd
Management Studio、您的应用程序代码甚至 Visual Studio 中执行此操作...
是的你可以。在 VS 2015/2017 中按 Ctrl+Q,键入“对象资源管理器”。“SQL Server 对象资源管理器”应打开,您将在其中看到本地数据库实例。展开数据库实例,您将看到不同的数据库。选择一个数据库执行右键单击并选择“删除”。
有关更多信息,请查看此链接。
希望有帮助。
使用 Entity Framework Core,这也可以通过命令行来完成:
dotnet ef database drop --project [path to project]
或者,如果您有多个数据库上下文:
dotnet ef database drop --project [path to project] --context [ContextName]
确保首先通过运行以下命令安装 EF 扩展:
dotnet tool install --global dotnet-ef
有一个名为 SqlLocalDB.exe 的 exe,可以在 C:\Program Files\Microsoft SQL Server\{version}\Tools\Binn 中找到
对于完全删除:
>sqllocaldb stop InstanceName
>sqllocaldb delete InstanceName
完成后,您还可以选择从磁盘中删除 .mdf 文件。我的在
C:\Users\{username}
您还可以重新创建一个新实例,甚至附加您之后仍需要的 .mdf 文件。
>sqllocaldb create InstanceName
>sqllocaldb start InstanceName
>sqllocaldb info InstanceName
您可以在以下位置查看您的实例:
C:\Users\{username}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances
LocalDB 是它自己的独立服务器(它的名字暗示它只是其他服务器实例中的一个数据库,但事实并非如此)。在 SQL Server 2014 Express 中,您使用服务器名称“(localdb)\MSSQLLocalDB”连接到它,就像连接到任何普通数据库服务器一样。如果您使用 SQL Server Management Studio 进行连接,那么您可以使用 SSMS 的所有功能。
我写了一个批处理文件来删除一个 SQL 本地数据库。它使用受信任的连接。如果需要,您可以添加带有-U Username
-P Password
参数的凭据。
查看sqlcmd 文档!
@echo off
set /p DbName=Enter local db name:
echo.
sqlcmd -e -S "(LocalDb)\MSSQLLocalDB" -d "master" -Q "EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'%DbName%'; USE [master]; DROP DATABASE [%DbName%];"
echo Finished!
pause > nul
实体框架 3.1:
删除数据库
dotnet ef database drop
不想删除数据库,愿意删除数据库中的表
dotnet ef database update 0