簡體   English   中英

是否可以同時使用實體框架和數據庫項目?

[英]Is it possible to use Entity Framework and a Database project together?

在昨天的一次會議上,我了解到將數據庫置於源代碼控制中的重要性。 他們向我們展示了如何創建一個新的數據庫項目並導入數據庫。

我想知道的是如何更改在實體框架上運行的現有項目以利用數據庫項目的功能? 架構更新一直是通過使用實體框架遷移來完成的。 我知道數據庫項目將能夠為我部署數據庫更新並將這些更新腳本保存到源代碼管理,但我想保留實體框架來查詢我的數據(如果這有任何意義的話)。

是否可以(甚至:推薦)使用實體框架訪問數據庫,但使用 Visual Studio 中的數據庫項目管理數據庫? 你如何看待這個問題?

我試過搜索類似的問題並使用谷歌查找是否有其他人遇到同樣的問題,但到目前為止還沒有骰子。

我還應該考慮在其中也有存儲過程的數據庫中使用 state。 這些根本不是通過實體框架控制的,因此還沒有在源代碼控制中。

感謝您的時間。

我想知道的是如何更改在實體框架上運行的現有項目以利用數據庫項目的功能?

答:我建議您從 Plural Sight 中查看這門課程: https://www.pluralsight.com/courses/code-first-entity-framework-legacy-databases

是否可以(甚至:推薦)使用實體框架訪問數據庫,但使用 Visual Studio 中的數據庫項目管理數據庫? 你如何看待這個問題?

回答:是的,這是可能的,也是推薦的。 您的數據項目成為您的數據庫結構的真實來源。 這對於將數據庫的所有更改和 state 控制在一個地方(Visual Studio)非常強大。 第一個答案的課程將教您如何操作。

我還應該考慮在其中也有存儲過程的數據庫中使用 state。 這些根本不是通過實體框架控制的,因此還沒有在源代碼控制中。

回答:我認為使用存儲過程沒有任何問題。 Plural Sight 課程中的工具將在您的源代碼管理中創建過程,逆向工程將創建一個類/方法以便於使用過程。

我開發了一個這樣的應用程序,有兩個項目:應用程序本身和數據庫的 SSDT 項目。 數據庫更改是通過更改腳本部署的,並且在應用程序中禁用了 EF 遷移。

一切都很好,盡管它確實帶來了一些開銷。 例如,將主要的數據庫更新/重構引入 EF 層有點麻煩。 由於某種原因,我無法將數據庫更改直接逆向工程到應用程序中,所以我不得不半手動完成:創建新項目,為整個數據庫生成 EF 上下文,然后將新/更改的文件復制到主應用程序中.

(話又說回來,差不多是 5 年前了。幸運的是,從那時起,EF 腳手架得到了改進。)

我剛剛遇到了以下替代方案,但我沒有測試:

從 SQL 服務器數據庫項目 -.dacpac 文件生成 Entity Framework Core 類

我認為這應該是值得考慮的事情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM