EF Core 2.0發佈,為何用戶大呼失落?

微軟 SQL 科技 IT168企業級 IT168企業級 2017-08-29

近日,微軟發佈Entity Framework Core 2.0終極版以及.NET Core 2.0和ASP.NET Core 2.0。Entity Framework (EF) Core是輕量級跨平臺的Entity Framework版本,也是.NET的對象或關係映射框架。

EF Core 2.0發佈,為何用戶大呼失落?

EF Core此次的最新主要包括更高效、強大的LINQ實現、簡化的提供程序模型及其使用的DI。EF Core此次的更新主要是針對最新.NET Standard 2.0。

對LINQ的優化從處理子查詢開始,優化後這些子查詢不再需要嵌套。而且當請求很少時,LINQ也不再將所有列作為檢索對象。

EF.Functions屬性也被添加進EF Core,EF.Functions屬性可以用於將運算符映射到數據庫函數或運算符中,然後在LINQ查詢中調用。這個版本還是添加了Like()運算符,因此在查詢中可使用EF.Functions.Like(),需要時Like()會被轉化成SQL中LIKE形式或者在內存中進行評估。

全局查詢過濾器是本次優化的另一個看點,用戶可在模型中指定在DbContext中執行的所有查詢的實體,但一直被EF Core用戶呼聲很高的優化點卻仍然“缺席”——SQL生成仍不支持GROUP BY。對此微軟做出迴應:EF Core 2.1版本中會添加該功能。

EF Core 2.0發佈,為何用戶大呼失落?

另外一個“缺席”的是優化點是對複雜類型的支持。Entity Framework中的複雜類型可用但依賴於所有類型或子類型。所有實體或子實體可以被定義,這些實體可將其他實體中的屬性分組,這與EF6中使用的複雜類型非常相似,唯一不同的是它具有包含參考導航屬性的能力。

由於Entity Framework Core 2.0中使用不同的語法,所以將EF模型從其他版本引入EF核心變得更加困難。

EF Core 2.0發佈,為何用戶大呼失落?

用戶的另一個失望點是核心SQL概念即存儲過程的缺席。存儲過程在服務器上執行比將所有數據傳輸到應用程序進行處理具有更高的效率,但是在2.0版本中卻沒有這個功能。

其他尚未添加的功能還包括空間類型、延遲加載的支持。這些在完整的Entity Framework版本中應該看到的功能可能只能寄希望於EF Core 2.1版本了。

相關推薦

推薦中...