Entity-Framework
Visual Studio 數據庫項目和 Enity Framework 程式碼優先
在工作中,我們正在使用 C# 實體框架程式碼優先方法開發我們的最新模組。我被賦予了從項目中的 DBContexts 開發數據庫的角色。
我從 DBContext 生成了表/實體並創建了數據庫項目,一切都很好。
我的問題是:當開發人員更改 DBContext 實體或更改實體的屬性時,我如何才能意識到此類更改並更新數據庫項目?
這里和文章解釋了一個很好的方法來做到這一點將很少額外的努力。本文描述了將 SQL 數據庫項目與 EF 生成的 LocalDB 進行比較以持久化架構更改。
使用 EF 進行架構/實體更新,就像您在開發工作流程中通常所做的那樣。使用 EF 數據庫作為比較數據庫來更新您的 SQL 數據庫項目。
走另一條路意味著更新對象,如儲存過程、登錄、附加索引和其他更多管理/微調對象。
不過有一點需要注意… EF 沒有自動檢測這些變化的工具,因此請謹慎使用正確的工具來完成正確的工作。用於模型的 EF 和用於…的 SQL DB 項目……好吧,一切都不受 EF 程式碼遷移的控制:-)
任何嚴肅的開發過程都應該包括一些原始碼控制軟體和使用該工具的計劃。由於 Git、Mercurial、SVN 等都是免費提供的,請選擇其中之一。Git 被一些最大的組織普遍使用,因此您可以選擇使用它。當然,還有許多其他原始碼控制工具。
如果您使用這種方法,定期檢入新版本的對象(模式和程式碼),您將有一系列以前的版本進行比較。然後您可以查找影響您的程式碼的更改。
當然,Microsoft 的 SQL Server Data Tools (SSDT) 包括 Schema Compare,Red Gate、Idera 等許多工具也是如此。
這應該為您提供跟踪架構更改和程式碼更改所需的工具。