Entity Framework 6.3 和 EF Core 3.0 路线图
盡管脫離了 .NET Core 發布循環,但是 EF Core 正在開發其 3.0 路線圖。除此之外,還對原來的 Entity Framework 進行了一些重要的變更。
更多服務器端的查詢
將 LINQ 查詢轉換為對應的 SQL 查詢通常是比較困難的,甚至是不可能的。許多 QRM 只能在轉換失敗時拋出一個運行時異常來解決這個問題,但是 EF Core 做了更多的嘗試。當不能完全理解 LINQ 查詢時,它會將其部分轉換為 SQL,之后在客戶端執行剩下的操作。盡管這可能會導致性能不好,很多開發人員更喜歡這種方案,而不是查詢直接失敗。
Diego B Vega寫道,
在 EF Core 3.0 中,我們計劃對 LINQ 實施和測試的方法進行重大變更。目標是讓它變得更加健壯(比如說,避免在補丁發布版本中破壞查詢),讓更多表達式準確轉換為 SQL,在更多情況下生成有效的查詢,防止沒有檢測到效率低下的查詢的情況發生。
C# 8.0 支持
EF Core 3.0 將成為第一個支持 C# 8 的版本。這主要代表著 API 在更新之后可以包含 [可為空的引用類型] 和異步流。關于如何做到這一點仍待確定,因為 EF Core 3.0 的一大目標是保留 .NET Standard 2.0 庫。這可能會與 C# 8 的一些功能背道而馳。
因為 .NET Framework 不會支持 C# 8 的所有新功能,所以 Entity Framework 6.3 也不太見得可以支持 C# 8。
多對多關系
要在 EF Core 中表示多對多關系,目前你需要能表示映射表的“連接實體”。有了“屬性包實體”功能之后,EF Core 離擺脫這種需求又更近了一步。
該特性支持實體將數據存儲在索引屬性中,而不是常規屬性中,并且能夠使用相同. NET 類的實例 (可能簡單到 Dictionary<string, object>) 來表示相同 EF 核心模型中的不同實體類型。
請注意,Entity Framework 已經在不需要連接實體的情況下支持多對多關系。
存儲過程
EF Core 3.0 timeframe 中不會提供對存儲過程的一流支持。可以使用查詢類型和原始 SQL 的變通方案。
Visual Studio Designer
Diego B Vega 寫道:
我們了解設計可能是我們的一些客戶使用 EF Core 的一個重要功能,但我們并沒有看到很多反饋表示它比我們待辦事項中的其他功能更加重要。我們很有興趣了解你是否嘗試代碼優先開發,了解你是否知道有工具可以將現有的數據庫反向工程到 EF Core 模型。
GraphQL
實現 GraphQL 是非常困難的。這個查詢語言非常復雜,如果沒有框架或者庫來支持它,甚至是部分實現也很難做到。
幾年以前 Microsoft 確實曾推出過使用 EF Core 的 GraphQL,但從來沒有公開發布過。盡管還有很多 GraphQL 的設計問題需要得到解決,但他們還是希望能在未來真正實現這一功能。
原文地址:https://www.infoq.cn/article/yrNemH-ijJCIIdjMl4ep
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的Entity Framework 6.3 和 EF Core 3.0 路线图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes初探[1]:部署你的
- 下一篇: .netcore下的微服务、容器、运维、