Visual Studio代碼實體框架核心添加遷移無法識別

c# entity-framework-core visual-studio-code

我已經使用yoman通過Visual Studio代碼編輯器生成ASP.Net Core Web API應用程序。作為參考,我在這裡遵循了本教程

API工作正常。但是,我正在嘗試將實體框架核心遷移與SQL Server一起使用。當我在Visual Studio代碼終端中鍵入以下內容時:

Add-Migration MyDbInitialMigration

我收到以下消息:

'Add-Migration' is not recognized as an internal or external command, operable program or batch file.

我安裝了Microsoft.EntityFrameworkCore.Tools: 1.1.0-preview4-final依賴項。我使用.Net核心項目管理器(Nuget)擴展來完成此操作。

在Visual Studio 2015中,此命令可從Package Manager控制台正常運行。

我假設使用Visual Studio Code的終端是個問題。但有誰知道如何在VS Code編輯器中使用EF Core Migrations?

謝謝你的幫助。

運行dotnet ef migrations add InitialCreate命令會產生以下錯誤:

No executable found matching command "dotnet-ef"

要解決這個問題,我需要安裝以下依賴項,並將其添加到工具部分:

Microsoft.EntityFrameworkCore.Tools.DotNet

一般承認的答案

添加新遷移的正確格式是dotnet ef migrations add yourMigrationName

並更新數據庫是dotnet ef database update


熱門答案

我在Mac上工作,所以默認安裝Ruby。我的EF命令需要很多額外的參數--project , - --startup-project等。每次輸入都很難,所以我用rake來簡化這個。

在我的項目根目錄中,我添加了一個名為rakefile的文件, rakefile包含以下內容:

desc "Add Migraion"
task :addmigration do
    ARGV.each { |a| task a.to_sym do ; end }  
    puts ARGV[1]
    sh "dotnet ef migrations add " + ARGV[1] + " --project MyProject.Data/MyProject.Data.csproj --startup-project MyProject.Web/MyProject.Web.csproj "
end

desc "Remove Migraion"
task :removemigration do
    ARGV.each { |a| task a.to_sym do ; end }  
    puts ARGV[1]
    sh "dotnet ef migrations remove --project MyProject.Data/MyProject.Data.csproj --startup-project MyProject.Web/MyProject.Web.csproj"
end

desc "Update Database"
task :updatedatabase do
    ARGV.each { |a| task a.to_sym do ; end }  
    puts ARGV[1]
    sh "dotnet ef database update --project MyProject.Data/MyProject.Data.csproj --startup-project MyProject.Web/MyProject.Web.csproj"
end

然後在命令行中運行以下命令:

rake addmigration <migrationName>
rake removemigration
rake updatedatabase


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow