我可以在 .net 核心中使用 Entity Framework 6(非核心)嗎?
Entity Framework Core 不支持我需要在我的應用程序中使用的空間數據。
我可以在 .net 核心中使用 Entity Framework 6 嗎?
DatabaseContext如果是這樣,我該如何註冊Startup.cs?
更新:是的,EF6 自 6.3 版以來一直是跨平台的。<https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability/#what-s-new-in-ef-6-3>
現在無效的原始答案:不,您不能直接使用,因為 EF6 不支持 .NET Core。但是,您可以創建另一個項目,該項目針對完整的 .NET 框架進行編譯並將其用作參考。
MS實際上為此做了一個不錯的教程: https ://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6#reference-full-framework-and-ef6-in-the- asp-net-core-項目
更新
您現在可以將 EF 6.3 與 .NET Core 3.0 一起使用:
<https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability/#what-s-new-in-ef-6-3>
下面是一段摘錄。然而,EF Core 近來已經取得了長足的進步,值得在回到即將結束生命週期的東西之前再試一次。特別針對您的問題,EF Core自 2.2 版起支持使用NetTopologySuite 空間庫映射到空間數據類型。
EF 6.3 中的新增功能
- 支持 .NET Core 3.0
- 除了 .NET Framework 4.x 之外,EntityFramework 包現在還針對 .NET Standard 2.1。
- 這意味著 EF 6.3 是跨平台的,並且支持除 Windows 之外的其他作業系統,如 Linux 和 macOS。
- 遷移命令已被重寫以在程序外執行並與 SDK 樣式的項目一起使用。
- 支持 SQL Server HierarchyId。
- 改進了與 Roslyn 和 NuGet PackageReference 的兼容性。
- 添加了用於啟用、添加、編寫腳本和應用程序集遷移的 ef6.exe 實用程序。這將替換 migrate.exe。在 .NET Core 中使用 EF 6.3 時存在某些限制。例如:
- 數據提供者也需要移植到 .NET Core。我們只移植了 EF 6.3 包中包含的 SQL Server 提供程序。
- SQL Server 不會啟用空間支持,因為空間類型無法與 .NET Core 一起使用。
- 請注意,此限制適用於 EF 6.3,但不適用於 EF Core 3.0。後者繼續使用 NetTopologySuite 庫支持空間。
- 目前不支持直接在 .NET Core 或 .NET Standard 項目上使用 EF 設計器。
原始答案
它還沒有準備好,但從 .NET Core 3.0 開始,您將能夠做到。
<https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/>
同樣,EF6 將更新為適用於 .NET Core 3.0,從而為使用 EF6 的現有應用程序提供簡單的前進路徑。
<https://youtu.be/GN54OV5cCBM?t=1146>
但還有 EF6,我們已經宣布將移植到 .NET Core 上執行……