微軟發布了Entity Framework Core2.1,為EF開發者帶來了很多期待已久的特性。EF Core 2.1增加了對SQL GROUP BY的支持,支持延遲加載和數據種子等。
EF Core 2.1的第一個重要新增特性是將GroupBy操作符翻譯成包含GROUP BY子句的SQL。缺乏這種支持被認為是EF Core 2.0中的一個重大疏漏。
同樣,對延遲加載的支持也被納入到EF Core 2.1中。為了支持延遲加載,現在實體的構造函數可以包含參數。在定義好構造函數后,EF Core可以在創建實體實例時調用此構造函數。
EF Core現在支持以編程方式操作包含初始數據的數據庫。與EF6不同的是,“種子數據與實體類型相關聯,成為模型配置的一部分”。
不過,EF Core 2.0的一些未解決問題在2.1中仍然未得到解決。例如,Table Per Type仍然是一個未解決的問題。
EF的打包在本版本中得到簡化,命令行工具現在是.NET Core SDK的一部分。開發者可以通過dotnet ef使用這些命令,並且在項目中引用它們(DotNetCliToolReference)現在不是必需的。
不過,這些命令僅支持EF Core 2.0/2.1,因此如果需要支持EF Core 1.0/1.1,需要小心使用這些命令。
EF Core 2.1可通過安裝.NET Core 2.1 SDK獲得。由於EF Core 2.1符合.NET Standard 2.0,因此它可在.NET Core 2.0和.NET Framework 4.6.1(或更高版本)上運行。
在從以前的版本升級時,請注意,為數據庫廠商提供支持的軟件包也應該要升級。使用專為EF Core 2.0設計的數據庫驅動程序在EF Core 2.1中會出現問題,這些問題並不會馬上引起人們的注意,
因此為了保險起見,最好進行更新。微軟建議通過dotnet add package直接更新,以確保可以加載正確的版本。