如何在Visual Studio for Mac中启用迁移

时间:2017-07-28 21:16:31

标签: entity-framework xamarin visual-studio-mac

我有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-migrationsadd-migrationupdate-database等内容?

4 个答案:

答案 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 命令行尝试运行时,您的解决方案不应执行!!!

对于不相信的人,这里是成功的演示!!! For People who are not convinced, here a demo of succeed!!!

答案 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数据库更新