ASP.NET 5 EntityFramework.Core 7.0.0-rc1-final issue - 編譯器想要引用7.0.0.0,但未找到

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

我有同樣的問題。我在project.json文件中添加了以下依賴項:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

我用dnu install EntityFrameworkdnu install EntityFramework.SqlServer來安裝軟件包。 "EntityFramework": "7.0.0-beta4",由安裝程序本身自動編寫在dependencies節點下。

問題/問題1:令我驚訝的是,當我為EntityFramework提供智能時,我提供的可用版本僅為6.1.3

問題2:當我使用dnu build編譯我的應用程序時(我在dependencies節點下手動添加EntityFramework程序集( .Core.Commands )後運行了dnu restore命令)我收到了一堆編譯錯誤:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

如果我刪除.Core.Commands程序集引用項目構建正常。

然後,我改變了版本EntityFramework.Core7.0.0.0中提到的錯誤:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

dnu restore現在給了我以下內容:

"dependencies": {
    "EntityFramework": "7.0.0-beta4",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  },
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },
...

我是asp.net 5 Visual Studio code平台的新手。我不能使用Visual Studio 2015因為開發團隊的其他成員正在使用OSX。

這對我來說是一個學習項目。要求非常簡單。連接SQL Server數據庫,使用Entity Framework提取master-child關係數據。

搞砸了!幫幫我!!

提前致謝

UPDATE

  1. 對於版本為7.0.0-rc1-final所有軟件包,我可以看到project.json的主要更改。我使用Yeoman生成器工具來創建項目,但看起來你通過Visual Studio更正了包。那麼,我是否必須手動更新軟件包版本並restore它們?

  2. 當項目由Yeoman創建/生成時,默認情況下沒有添加global.json文件。我可以手動添加並手動放入代碼嗎?這會有用嗎?

  3. 我還可以看到一些額外的包引用被添加到project.json文件中,默認情況下,Yeoman生成器沒有添加它們 - 如Microsoft.AspNet.Tooling.RazorMicrosoft.Extensions.Logging.ConsoleMicrosoft.Extensions.Logging.DebugMicrosoft.Extensions.Logging等它們是否都在項目中有效使用?因為生成器沒有自動添加它們,我是否可以手動添加它們並使用dnu restore ?如果我手動添加它會對項目產生任何影響嗎?

一般承認的答案

您應該從依賴項中刪除 "EntityFramework" (刪除"EntityFramework": "7.0.0-beta4" )並使用

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

只要。如果由於以下依賴項添加了"EntityFramework.Core": "7.0.0-rc1-final"則無需顯式添加"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"

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

我的意思是EntityFramework.MicrosoftSqlServer需要EntityFramework.Relational ,它需要EntityFramework.Core

您還應驗證global.json包含"sdk": { "version": "1.0.0-rc1-update1" }

更新 :我檢查了你上傳的測試項目。它有很多小問題。我修改了它。您可以在此處下載修改後的項目。 不要忘記修復appsettings.json使用的ConnectionString ,它包含我在我用過的Server

最重要的變化是使用更簡單的BookContext.cs

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

使用以下SampleData.cs

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

project.json與以下dependencies部分的用法:

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

修復appsettings.json來自

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

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

Data 不應該在Logging

以及以下Startup.cs的用法

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

我在Configure方法的註釋中寫道,應該執行命令

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

恢復所有包後。 dnx ef migrations add Initial將在項目中使用20160101205609_Initial.csBookContextModelSnapshot.cs等文件創建其他Migrations文件夾。 appsettings.json定義的數據庫將由dnx ef database update創建,並且在與程序分叉期間將填充來自SampleData.cs測試數據。

順便說一句,我將package.json移動到包文件夾中(與project.json處於同一級別)。您不使用這些包,但該移動使得npm包在Visual Studio中可見和管理。




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