實體框架7的添加遷移命令不適用於ASP.NET 5類庫

asp.net-core c# entity-framework-core

我創建了一個具有以下依賴項的ASP.NET 5類庫

"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

我創建了我的模型和DatabaseContext類。現在我想添加一個遷移,以便我可以創建數據庫。通過電話

"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

從命令行,它給我以下錯誤消息

System.InvalidOperationException:當前運行時目標框架與'Yugasat.Test'不兼容。當前運行時目標框架:'DNX,Version = v4.5.1(dnx451)'版本:
1.0.0-rc1-16231類型:Clr架構:x86 OS名稱:Windows OS版本:10.0運行時ID:win10-x86

請確保運行時與Microsoft.Dnx.ApplicationHost.DefaultHost.GetEntryPoint(String applicationName)中的project.json中指定的框架匹配,該文件位於Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host,String applicationName,String [] args)at Microsoft.Dnx.ApplicationHost.Program.Main(String [] args)---拋出異常的前一個位置的堆棧跟踪結束---在Microsoft.Dnx.Runtime的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()處Microsoft.Dnx.Host上的Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args,IRuntimeEnvironment env,String appBase,FrameworkName targetFramework)中的.Common.EntryPointExecutor.Execute(程序集,String [] args,IServiceProvider serviceProvider)。 Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String [] args,BootstrapperContext bootstrapperContext)中的RuntimeBootstrapper.ExecuteAsync(String [] args,BootstrapperContext bootstrapperContext)

據我從錯誤消息中看到,我的dnx版本是4.5.1,我的projects.json文件中的框架設置為4.5.1

"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

一般承認的答案

"frameworks": {
    "net451": {}
}

你需要在這裡使用dnx451 ,而不是net451 。然後,當前運行時目標框架( DNX,Version=v4.5.1 (dnx451) )將正確地進行拾取。

另請注意,正確的命令是dnx ef migrations add InitialMigration ;我不確定Add-Migration有效。




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