2016-08-11 44 views
0

我已經開發了一個MVC Web應用程序,使用實體框架和SQL Server作爲後端。我使用了數據庫優先的方法。使用Entity Framework將數據庫從SQL Server切換到Oracle需要進行哪些更改?

現在我的客戶想切換到Oracle數據庫。我正在對從SQL Server切換到Oracle數據庫進行影響分析。我的客戶認爲它和更改連接字符串一樣簡單。

我的問題是,考慮到表名,表結構,關係和屬性都與SQL Server數據庫相同,我需要在從MS SQL切換到Oracle的項目中進行哪些更改?

是否需要爲Oracle數據庫創建新的edmx文件,還是隻需要更改連接字符串並使用相同的上下文?

此外,如果將來需要扭轉這種情況,那麼是否有支持兩種數據庫的良好做法或解決方案?

謝謝。

+0

作爲一個從事這項工作的人,我最好的建議是拍攝誰想要使用Oracle並隱藏自己的身體。或者,你將不得不得到ado.net的Oracle實現(我們使用devart),並花費你所有的時間來處理大量的角落案例。例如,我們必須創建一個框架來進行大量的scut工作。 Scut的工作是必須對數據庫進行調整以使其更快,所有這些都是每種類型的RDBMS獨有的...... – Will

+0

Oracle數據庫將如何構建?我們在談論哪個oracle版本?我正在開發針對Oracle數據庫的Code First,並且有一些調整。如果表的數量不是微不足道的,我相信如果從現有的MS SQL數據庫轉移,它將成爲一場噩夢。 – grek40

+0

如果你的客戶端提供了一個完成的數據庫,那麼數據庫首先爲你現有的代碼生成一個兼容的模型,它應該和切換連接字符串一樣微不足道。但請注意他們是否希望您成爲構建「兼容」數據庫的人。 – grek40

回答

0

oracle對項目(表,索引,列)有30個字符的限制,所以如果你在任何命名中冗長,你將不得不重命名一堆項目。

我不喜歡使用edmx。代碼優先模型可能更容易。

+0

我沒有使用詳細信息。您建議首先實現代碼,那麼是否需要再次創建所有實體並刪除現有實體? –

相關問題