Visual Studio Mac預覽實體框架SQLite添加遷移

.net-core entity-framework-core macos visual-studio

我今天安裝了Visual Studio for Mac(OSX 10.12.1),並且我已經進行了相當廣泛的深入研究。

我想嘗試使用SQLite運行EntityFrameworkCore(1.1.0)。

所以我創建了一個新的控制台應用程序.NET核心,並且有一些麻煩能夠添加所有必需的nuget包。不知何故,Visual Studio無法下載依賴項,因此我必須手動下載每個依賴項。 (也許這解決了這個問題: .Net Core 1.1.0 NuGet包無法在Visual Studio中安裝Mac還沒有測試過。)

如本文所述( https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite )我想添加遷移,但我找不到IDE中必需的命令行工具。我在這裡錯過了什麼嗎?

然後我繼續使用.NET Core CLI通過手動完成。安慰。 ( https://www.microsoft.com/net/core#macos )。但是當我執行dotnet ef migrations add init我得到以下錯誤。

找不到匹配命令“dotnet-ef”的可執行文件

是否有人能夠成功運行?

一般承認的答案

Visual Studio for Mac 2017目前(2017年4月)不支持添加對Microsoft.EntityFrameworkCore.Tools.DotNet的引用並返回錯誤:

Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' has a package type 'DotnetCliTool' that is not supported by project 'MacMvc'.

您可以手動編輯該文件,並將引用直接添加到csproj文件中,如文檔所述 。將其添加到您的csproj文件:

  <ItemGroup>
     <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  </ItemGroup>

然後運行dotnet restore來安裝軟件包。之後,您將能夠使用dotnet ef migrations add NameOfMigration根據文檔dotnet ef migrations add NameOfMigrationdotnet ef database update腳本。

注意:執行命令時必須在項目目錄中。

另請參閱VS 2017 for Mac的建議反饋:


熱門答案

使用VS for Mac,將以下行添加到.csproj中使遷移對我有用:

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild2-final" />

軟件包將自動恢復,從VS中保存.csproj。

要通過終端運行“dotnet ef”命令,您需要位於項目目錄中,我的意思是不是來自.sln文件所在的目錄,而是來自較低級別。

注意:與Tools.DotNet的v1.0.1相同的技巧不起作用,我不知道為什麼。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因