我正在開發一個新項目 - 我希望使用最新的.NET Core。

通過閱讀文檔,我發現了Entity Framework Core和Entity Framework 6.x Comparison之間的比較。 這裡

我需要的一些功能:EF Core不支持Spatial Data Type 。所以我不能使用它,因為項目中需要空間數據類型。

再次閱讀文檔,我遇到瞭如何使用EF 6.x和.NET Core的鏈接: 這裡

在文章中提到( 這裡 ):

在開始之前,請確保在project.json中針對完整的.NET Framework進行編譯,因為Entity Framework 6不支持.NET Core。如果您需要跨平台功能,則需要升級到Entity Framework Core。

我真的不需要我的項目是跨平台的。

關於如何在ASP.NET Core中使用EF6,文章不是很清楚。

我創建了一個新的ASP.NET Core Web Application

然後我使用Nuget Package Manager安裝了EF6,並出現以下錯誤

在此處輸入圖像描述

我從project.json的框架中刪除了netcoreapp1.0 ,並添加了net46作為框架,刪除了EF的錯誤,但現在我又收到了另一個錯誤。

在此處輸入圖像描述

  1. 那麼如何在ASP.NET核心中使用EF6呢?

  2. 當我使用EF6時,我必須刪除所有對.NET Core的引用,這是否意味著我不使用.NET Core?除了它不能運行跨平台之外,這有什麼缺點?

熱門答案

要停止第二個錯誤,您需要從project.jsondependencies部分中刪除以下內容:

"Microsoft.NETCore.App": {
    "version": "1.0.0",
    "type": "platform"
}

作為參考, 從ASP.NET Core項目引用完整.NET Framework和Entity Framework 6的文檔有一個完整的project.json示例。

刪除對.NET Core的引用並不意味著您沒有使用ASP.NET Core。您只是在更改ASP.NET Core項目將在其上執行的目標運行時平台。

將ASP.NET Core與完整的.NET Framework結合使用,您可以獲得新項目結構和統一故事的好處,用於構建Web UI和Web API(例如統一的Controller類),您還可以訪問成熟的,功能齊全的.NET Framework,支持使用尚未移植到.NET Core的依賴項和NuGet包,例如Entity Framework 6。



Related

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