2017-07-28 67 views
1

我的Visual Studio的Mac,我嘗試使用下面的教程來學習Xamarin與天青:https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter3/server/如何啓用在Visual Studio中遷移的Mac

在某一點上,我不得不使EF遷移。該教程說:轉到查看 - >其他Windows - >軟件包管理器控制檯。

不幸的是,在Visual Studio for Mac中沒有軟件包管理器控制檯......所以你如何在Mac上處理像enable-migrations,add-migrationupdate-database這樣的東西?

+1

當前不支持Visual Studio'包管理器主機''macOS'使用PowerShell測試版,因此試圖安裝/ init'EntityFramework.psm1'將失敗,因爲運行PowerShell會導致一個'ConsoleHost'並因此嘗試在EntityFramework PS模塊上運行'Import-Module'將會失敗。遷移cmds在實體框架apis上是非常薄的包裝,你可以很容易地將它們轉換爲C#c​​md-line應用程序,但在Mac上啓動一個Windows VM比較容易......糟透了,但那些是今天有兩個選項可用:https://stackoverflow.com/a/20382226/4984832 – SushiHangover

+0

它不僅僅是支持軟件包管理器主機。有一個單獨的NuGet擴展插件添加了PowerShell控制檯。問題在於,至少在EF 6中,PowerShell命令是特定於Visual Studio的。當我在SharpDevelop中集成對EF 6的支持時,需要重寫所有PowerShell命令才能與主機IDE協同工作。 EF 7提供了使用dotnet cli在命令行上工作的跨平臺命令。但是,PowerShell集成是另一個問題。 –

回答

3

Visual Studio for Mac當前不支持此功能。

有一個NuGet擴展插件,它將PowerShell控制檯添加到Visual Studio for Mac,但實體框架PowerShell命令不太可能工作,因爲它們通常特定於特定於Visual Studio。此外,PowerShell支持受到限制,因爲它使用了Pash,這是一個PowerShell的開放源代碼克隆版本,尚未完全實施。

如果您正在使用實體框架7(或他們正在調用實體框架核心),那麼您應該能夠使用與.NET Core command line命令。

dotnet ef migrations ... 

如果您使用的是實體框架6,那麼您需要找到另一種方式來調用遷移,而不是使用PowerShell。實體框架6具有特定於Visual Studio的PowerShell命令。他們被移植到SharpDevelop,但涉及重新編寫它們以使用該IDE。

+0

https://meta.stackoverflow.com/questions/359302/merge-tags-visual-studio-mac-and-visual-studio-for-mac?noredirect=1#comment531840_359302 –

相關問題