Entity Framework Core 2.1带来更好的SQL语句生成方案
微軟發(fā)布了Entity Framework Core2.1,為EF開發(fā)者帶來了很多期待已久的特性。EF Core 2.1增加了對(duì)SQL GROUP BY的支持,支持延遲加載和數(shù)據(jù)種子等。
EF Core 2.1的第一個(gè)重要新增特性是將GroupBy操作符翻譯成包含GROUP BY子句的SQL。缺乏這種支持被認(rèn)為是EF Core 2.0中的一個(gè)重大疏漏。同樣,對(duì)延遲加載的支持也被納入到EF Core 2.1中。為了支持延遲加載,現(xiàn)在實(shí)體的構(gòu)造函數(shù)可以包含參數(shù)。在定義好構(gòu)造函數(shù)后,EF Core可以在創(chuàng)建實(shí)體實(shí)例時(shí)調(diào)用此構(gòu)造函數(shù)。
EF Core現(xiàn)在支持以編程方式操作包含初始數(shù)據(jù)的數(shù)據(jù)庫。與EF6不同的是,“種子數(shù)據(jù)與實(shí)體類型相關(guān)聯(lián),成為模型配置的一部分”。不過,EF Core 2.0的一些未解決問題在2.1中仍然未得到解決。例如,Table Per Type仍然是一個(gè)未解決的問題。
EF的打包在本版本中得到簡化,命令行工具現(xiàn)在是.NET Core SDK的一部分。開發(fā)者可以通過dotnet ef使用這些命令,并且在項(xiàng)目中引用它們(DotNetCliToolReference)現(xiàn)在不是必需的。不過,這些命令僅支持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(或更高版本)上運(yùn)行。
在從以前的版本升級(jí)時(shí),請(qǐng)注意,為數(shù)據(jù)庫廠商提供支持的軟件包也應(yīng)該要升級(jí)。使用專為EF Core 2.0設(shè)計(jì)的數(shù)據(jù)庫驅(qū)動(dòng)程序在EF Core 2.1中會(huì)出現(xiàn)問題,這些問題并不會(huì)馬上引起人們的注意,因此為了保險(xiǎn)起見,最好進(jìn)行更新。微軟建議通過dotnet add package直接更新,以確保可以加載正確的版本。
相關(guān)文章:
《你必須掌握的Entity Framework 6.x與Core 2.0》正式出版感想
EntityFramework Core依賴注入上下文方式不同造成內(nèi)存泄漏了解一下?
Entity Framework Core 關(guān)聯(lián)刪除
你必須知道的EntityFramework 6.x和EntityFramework Core變更追蹤狀態(tài)
原文地址:http://www.infoq.com/cn/news/2018/06/efcore21-release
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的Entity Framework Core 2.1带来更好的SQL语句生成方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简明 ASP.NET Core 手册
- 下一篇: 在ASP.NET Core中使用brot