我正在開發一個asp.net
應用程序,目前我使用Sql Server 2008
作爲後端。 但是我被要求開發一個應用程序與多個數據庫(oracle,sql server,mysql
等)。有沒有可能實現這一點。這是一個可行的解決方案。與此相關的可能的缺點可能是什麼。 謝謝具有多個數據庫的Asp.net應用程序
回答
是的,這是可行的。您需要在web.config中爲每種數據庫類型(和目錄)提供一個連接字符串,並且您可能需要在服務器上安裝不同的驅動程序(如ODBC驅動程序)。
我能想到的唯一缺點就是我無法輕鬆地在數據庫之間連接表。如果你有做到這一點,你需要從單個數據庫表,要麼選擇:通過表
- 循環在你的代碼隱藏和手動處理像參加會的數據。
- 或將選定的表插入其中一個數據庫的臨時表中,然後使用該服務器進行連接。
這應該是可行的,但它可能並不容易。
您需要使用您隔離每個數據庫的詳細信息的數據訪問層,因爲每個數據庫都會有略有不同的語法在它的語言,意思是你(可能)將不能夠寫一個查詢這將在他們所有的工作。你還沒說你的系統的域名是什麼,但是,讓我們說,書店的DAL會有像GetBooks
方法,GetBook
,GetCustomer
等
底下你DAL你可能會再有一組不同的.NET程序集,每個.NET程序集都知道如何針對一個數據庫運行查詢(SQL Server,Oracle等)。當您的DAL中的某個方法被調用時,您的DAL將其傳遞到相應的程序集以實際進行調用並通過DAL將結果返回給應用程序。您的DAL需要能夠在程序集中創建類的實例,有幾種不同的方法可以做到這一點,但我建議MEF可能是最直接的。
缺點:
因爲你需要通用的,這是不可能的,你就可以使用 任何一個數據庫的具體特徵
這將需要更長的時間,因爲每個您需要在DAL中爲其編寫代碼,然後爲每個單獨的數據庫程序集編寫代碼,以及數據庫本身的任何SQL編碼,和,然後針對每個數據庫對其進行測試。
+1 @Freebird我傾向於在這種情況下使用與此不相似的方法實現存儲庫模式 - > http:// msdn .microsoft.com/EN-US /庫/ aa973811.aspx。在這裏,控制反轉允許你在BL中定義倉庫的接口,然後將其留給Datalayer和RespositoryFactory來處理其餘部分。 HTH – SeanCocteau 2012-03-05 14:05:24
@PhilPursglove ,,,非常感謝,,, m對這個話題做了更多的研究,,,當我打算去找它的時候,可能再次聯繫你一些額外的指導,謝謝 – freebird 2012-03-06 07:21:23
解決此問題的另一種方法是使用SQL Server作爲連接不同數據庫的層。 SQL Server 2005和更高版本有一個稱爲Linked Servers的功能。這會讓你鏈接到其他數據庫。
這種方法將允許您將數據層建模爲一個數據庫,並讓SQL Server抽象出多個數據庫的複雜性。
您還可以查看名爲OPENROWSET的SQL Server功能。這將允許您查詢其他數據庫而無需設置鏈接服務器。
,,,謝謝很多,,,生病了,我必須回到你身後,當我對此進行研究時,請回復。謝謝 – freebird 2012-03-06 07:19:38
我希望它有幫助。 – 2012-03-07 02:54:55
- 1. 具有多個數據庫連接的Rails應用程序
- 2. 使用多個數據庫的單個ASP.NET MVC應用程序
- 3. 用於具有多個數據庫的複合.NET應用程序的DDD/CQRS
- 4. 具有多個工作進程的Asp.net應用程序
- 5. 多個數據庫單一應用程序與ASP.NET
- 6. 具有多個並行數據庫訪問的iOS應用程序的設計
- 7. ASP.NET認證 - 多應用程序和多用戶數據庫
- 8. 具有多個API數據服務的應用程序
- 9. 具有多個web.config文件的ASP.NET 3.5應用程序(IIS 7)
- 10. 具有多個角度2應用程序的ASP.Net核心MVC
- 11. 具有遠程數據庫的JavaFX應用程序
- 12. 具有共享代碼庫的多個應用程序
- 13. 具有ASP.NET應用程序的Oracle Coherence
- 14. 帶有Oracle數據庫的ASP.NET MVC2 Web應用程序
- 15. 具有相同結構的多個數據庫asp.net mvc
- 16. 一個用戶數據庫服務於多個應用程序數據庫
- 17. 具有多個數據庫的Django Haystack
- 18. 具有一個grails應用程序的多個或多個域?
- 19. 笨單個應用程序的多個數據庫
- 20. 對於單個應用程序的多個數據庫平臺
- 21. 單個應用程序中的多個數據庫更新
- 22. 具有多個應用程序中的自定義數據的Django用戶
- 23. 在一個應用程序中使用多個數據庫
- 24. 多個數據庫用戶在一個Rails 3應用程序
- 25. 在一個應用程序中使用多個數據庫
- 26. 用於許多web2py應用程序的單個MySQL數據庫
- 27. django一個應用程序一個模型多個數據庫
- 28. 具有數據庫數據的內存副本的框架/應用程序
- 29. 單個數據庫或多個數據庫(對於單個應用程序中的多個用戶)
- 30. 具有多個數據源的依賴關係的Spring Boot應用程序
你的意思是一個應用程序同時使用所有這些不同的數據庫*,或者一個應用程序被安裝使用* SQL Server,Oracle,MySQL等 – PhilPursglove 2012-03-05 12:18:45
@PhilPursglove ,,,數據庫可以使用任何上面提到的數據庫之一,,我的意思是它應該是靈活的,以便與任何一個兼容 – freebird 2012-03-05 12:28:23