簡體   English   中英

在SQL Server和Oracle數據庫中均可使用的應用程序

[英]Application that works in both SQL Server And Oracle Databases

構建與Sql Server或Oracle一起使用的小型(但可伸縮)應用程序的最佳方法是什么?

在功能背后的過程中,我對構建支持多個數據庫的應用程序很感興趣。

使用支持多個數據庫的ORM是第一步。 例如,您可以查看NHibernateEntity框架 -兩者都具有oracle和sql server支持。 這樣,您只需要換出數據庫映射就可以使應用程序在任何一個DBMS上運行。

編輯-感謝tvanfosson,為nhibernate添加了“新”鏈接。

除了ORM注釋; 有時候生活不是那么簡單。

您必須在兩個系統上保留單獨的腳本來生成表,視圖和存儲過程,因為它們會有所不同。

出於性能原因,您可能需要做一些棘手的事情,這是特定於一個數據庫平台的。 例如,在Oracle中創建一個新分區。

您應該嘗試通過將其封裝在視圖或存儲過程中來在此級別進行操作。

您的客戶端代碼可以在任何數據庫上調用具有相同簽名的存儲過程。 您可以編寫一個不執行任何操作或執行很多操作的存儲過程,具體取決於數據庫的要求。

我的建議是使用現有的(免費)框架,例如nHibernate ,為您抽象出對數據庫的依賴性。 或者,您將需要定義自己的抽象層,該抽象層能夠與兩個數據庫之一的驅動程序進行交互。

作為對其他答案的補充,您應該看一下ADO.Net中的DbProviderFactories體系結構...有點低調,但可能對您有用。

正如許多人指出的那樣,使用ORM可以解決您的問題。 我使用LLBLGen取得了巨大的成功。 或者,您可以使用接口IConnection,ICommand等來滾動自己的ConnectionFactory。

我會使用OR / M。 其中大多數都支持許多不同的數據庫供應商,並且具有與數據庫無關的語言來進行查詢等。

我可以為C#推薦NHibnernate。

暫無
暫無

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

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