2012-02-27 39 views
3

我正在尋找一個多數據庫服務器環境,用於在不同的服務器類型和版本之間進行切換。用於開發目的的數據庫服務器

我有一個.Net應用程序,它必須處理多個數據庫服務器,由它們的連接字符串定義,但我不想自己處理所有服務器安裝/配置。

我想的有點像標準的Northwind數據庫,但在不同的服務器,如MySQL,甲骨文,SQL Server 2005中,SQL Server 2008和等主持...

爲了在本地處理所有連接,我正在考慮使用某種代理客戶端,它需要一個connectionString和providername,並通過指定的通信協議執行查詢。

有沒有人有任何想法,如果這樣的服務存在? (免費和/或商業)

感謝

+0

這是一個非常棒的問題!我很高興看到一些答案。只是爲了好奇,這是什麼目的?爲什麼有多種服務器類型? – 2012-02-27 21:39:15

+0

我打算創建一個數據庫模式比較應用程序,並支持多種服務器類型之間的比較。這個想法是讓業務層處理相同的數據,而不管存儲哪種服務器類型的數據。 – Ionut 2012-02-27 22:26:34

回答

1

爲了在本地處理所有的連接,我在想,我某種代理的客戶端,這需要一個的connectionString和的providerName並通過執行查詢指定的通信協議。

至少,ADO允許您以相當通用的方式建立連接。你的里程可能會有所不同,因爲不同的數據庫都講不同的SQL方言。

對於爲所有平臺動態構建SQL的SQL DSL,可能會更好。

Factory Model Overview (ADO.NET)

ADO.NET 2.0還引入了抽象基類,這使開發者能夠編寫不依賴於特定的數據提供者的通用數據訪問代碼。

...

的編程模型書寫提供商無關的代碼是基於使用的「工廠」的設計模式,它使用一個單一的API跨多個供應商訪問數據庫。這種模式被恰當地命名,因爲它呼籲使用專門的對象來創建其他對象,就像現實世界的工廠一樣。

DbProviderFactories.GetFactoryClasses理解:

  • System.Data.Odbc
  • System.Data.OleDb
  • System.Data.OracleClient
  • System.Data.SqlClient
  • System.Data.SqlServerCe.3.5
+0

是的,我已經實現了這一點。我正在尋找的是服務器實例本身以及使用像攔截器這樣的代理從本地開發機器訪問它們的可能性,該代理將本地連接字符串(和提供程序名稱)映射到遠程(數據倉庫)服務器環境,該環境提供多個服務器實例(mysql,oracle,mssql等)。不需要在本地安裝每臺服務器就可以節省大量時間。謝謝 – Ionut 2012-02-27 22:19:51

相關問題