本篇文章來源於微信技術群小夥伴的提問,在企業應用開發中.NET ORM EF常用哪種模式進行開發?今天我們一起來了解一下EF開發的三種模式。
Entity Framework (EF) Core 是輕量化、可延伸、開源和跨平臺版的常用 Entity Framework 資料存取技術,EF Core 是適用於 .NET 的現代物件資料庫對映器。它支援 LINQ 查詢、更改跟蹤、更新和架構遷移。EF Core 通過提供程式外掛 API 與 SQL Server、Azure SQL 資料庫、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 和其他資料庫一起使用。(微軟官方出品)。
官方檔案教學:https://docs.microsoft.com/zh-cn/ef/
GitHub地址:https://github.com/dotnet/efcore
假如你到現在還不知道該選擇哪種ORM來進行.NET應用的開發,不妨先看看下面的這兩篇文章,相信對你會有所幫助。
這三種模式都是用於定義和管理資料模型的方式,但是它們的實現方式不同,適用於不同的場景。
程式碼優先模式是指先編寫對於資料庫表的實體類和資料庫上下文類,然後通過 EF 工具根據程式碼建立表、生成資料庫表結構、對映檔案等。
當資料模型發生變化時,開發人員還需要手動修改程式碼並執行資料遷移操作。因此,在一些情況下,程式碼工作可能會相對繁瑣,特別是在處理複雜的資料模型或頻繁變更的情況下。
資料庫優先模式是指首先要建立好資料庫,然後將使用 Visual Studio 中包含的實體框架設計器來建立模型(專案=>新增新項=>從左側選單中選擇「資料」,然後選擇「ADO.NET 實體資料模型」=>實體資料模型嚮導(新增資料庫存取地址)=>選擇「從資料庫生成」,然後單擊「下一步」),最後生成EDMX 檔案(.edmx 擴充套件名)。
模型優先模式介於資料庫優先模式和程式碼優先模式兩者之間(結合體)。在模型優先模式中,首先定義實體資料模型(選擇「空模型」並單擊「完成」),然後通過該模型生成資料庫結構。
使用視覺化工具,開發人員可以直觀地設計資料模型,通過拖放和設定屬性來定義實體和關係,從而提高開發效率。
操作步驟比較繁瑣,對於複雜的資料模型,使用視覺化工具進行設計和管理可能會變得困難。當模型變得龐大和複雜時,視覺化工具的效能和易用性可能會受到影響。
上面通過對EF三種開發模式的簡單概述,可以看出程式碼優先模式(Code First)和資料庫優先模式(Database First)是比較適合企業應用開發的,因為這兩種方式更符合我們實際開發的使用模式。那麼具體用哪一種,這就需要根據你自己專案的複雜度和團隊使用習慣來衡量了,假如你有不同的見解歡迎留言。