我有Visual Studio for Mac,我正在尝试使用以下教程学习Xamarin:https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter3/server/
在某些时候,我必须启用EF迁移。教程说:转到视图 - >其他Windows - >包管理器控制台。
不幸的是,Visual Studio for Mac中没有软件包管理器控制台...那么如何处理Mac上的enable-migrations
,add-migration
或update-database
等内容?
答案 0 :(得分:14)
Visual Studio for Mac目前不支持此功能。
有一个NuGet扩展插件,可以为Visual Studio for Mac添加PowerShell控制台,但是Entity Framework PowerShell命令不太可能工作,因为它们通常是特定于Visual Studio的。此外,PowerShell支持是有限的,因为它使用了Pash,一个PowerShell的开源克隆,但尚未完全实现。
如果您正在使用Entity Framework 7(或他们称之为Entity Framework Core),那么您应该能够使用.NET Core command line的命令。
dotnet ef migrations ...
如果您使用的是Entity Framework 6,那么您需要找到另一种方法来调用迁移,而不是使用PowerShell。实体框架6具有特定于Visual Studio的PowerShell命令。他们被移植到SharpDevelop,但涉及重写它们以与IDE一起工作。
答案 1 :(得分:6)
Mac 目前支持此功能。
首先你需要安装 dotnet-ef
dotnet tool install --global dotnet-ef
要安装特定版本的工具,请使用以下命令:
dotnet tool install --global dotnet-ef --version 3.1.4
在 PATH 环境变量中添加“dotnet-ef”工具目录。
export PATH="$PATH:/Users/'your user folder'/.dotnet/tools"
打开命令行,进入项目文件夹,然后运行
dotnet restore
如果一切正常,你应该可以运行
dotnet ef
之后,您可以运行以下命令:
dotnet ef migrations add initial
dotnet ef database update
PS:当 dotnet ef 命令行尝试运行时,您的解决方案不应执行!!!
答案 2 :(得分:4)
如果使用的是.NET Core(特别是EF Core),则可以在Visual Studio for Mac中安装NuGet PowerShell Core控制台。
只需遵循以下说明:
https://lastexitcode.com/blog/2019/05/05/NuGetPowerShellCoreConsoleVisualStudioForMac8-0/
答案 3 :(得分:1)
要在Mac上运行EF,请遵循以下步骤。
打开命令行,转到项目文件夹,然后运行
dotnet恢复
如果一切正常,您应该可以运行
dotnet ef
之后,您可以运行以下命令:
dotnet ef迁移添加了初始
dotnet ef数据库更新