在Visual Studio中,EntityFrameWork命令如Add-Migration和Update-Database通常在包管理器控制台中运行。这在Visual Studio中工作得很好,但不幸的是,它不是可移植的。这些命令是基于powershell的,并且包管理器控制台绑定了Visual studio,因此在Jetbrain Rider中没法使用Add-Migration和Update-Database。
不过,不用担心~ 在EntityFramework Core中,微软提供了跨平台的命令行工具,这意味着在任何IDE中、任何受支持的操作系统上,都已使用这套命令行工具。下面介绍下这套命令行工具。
添加包引用
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.12" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.12" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.12">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Microsoft.EntityFrameworkCore Entity Framework Core 框架。
Microsoft.EntityFrameworkCore.SqlServer SQL Server数据库驱动程序 (EFCore也支持其他数据库)。
Microsoft.EntityFrameworkCore.Tools 在控制台中使用命令行来操作EF,需要先安装。
我们可以使用NuGet工具窗口或手动编辑.csproj文件来添加包引用。这里是我采用手动添加的方式添加包引用。
我们现在可以执行Entity Framework Core命令了!
Entity Framework Core命令行
命令可以从Rider内置终端运行。默认情况下,终端在解决方案文件夹中打开。
由于Entity Framework Core命令行工具是特定于项目的,我们将不得不cd到项目文件夹。
要测试我们是否在正确的文件夹中,运行dotnet ef 命令。如果我们看到能看到Entity Framework独角兽,说明一切顺利。
由于我的项目是用Visual Studio 创建,后来转到Jetbrain Rider,所以我已经在VS中构建好了Migration如下图,我要做的是在95个Migrations的基础上,在Jetbrain Rider中直接添加迁移一个v96并更新到数据库就可以了。
添加迁移命令:
dotnet ef migrations add %your migration name%
更新到数据库:
dotnet ef database update %your migration name%
搞定。
参考文章:
RunningEntity Framework (Core) commands in Rider