2010-01-16 73 views
1

我目前開發的應用程序連接到SQL Server 2005數據庫,所以我的DAL對象使用該數據庫中的信息生成。基於SubSonic的應用程序,連接到多個數據庫

它也可以連接到一個Oracle和MySQL數據庫,都具有相同的表結構(除了正常的字段差異,例如SQL Server中的varbinary(max)和Oracle中的BLOB等等)。爲此,我已經爲應用程序運行的不同數據庫定義了多個連接字符串和多個SubSonic提供程序。

我的問題是,如果我使用SQL Server數據庫生成我的對象,應在生成的對象透明地與其他數據庫的工作或做我需要生成我使用的每個數據庫引擎不同的DAL?我應該知道在執行這些操作時可能遇到的任何可能的錯誤嗎?

在此先感謝您對此問題的任何建議。

回答

0

我使用的方式亞音速2.2 ....

從我已經能夠到目前爲止測試,我看不到一個簡單的方法來達到我想要做的。

對於我來說,理想情況是使用SQL Server生成SubSonic對象,例如只需在運行時爲其創建正確的提供程序及其連接字符串即可動態切換到MySQL。我到了一個地步,我的應用程序將正確地從SQL Server連接到MySQL數據庫,但也正是因爲亞音速內部生成的形式

SELECT * FROM dbo.MyTable 

其MySQL不明顯支持的查詢應用程序失敗的一個點。我還注意到包含括號([])的表名的查詢,因此似乎有很多因素會限制沿着多個數據庫引擎使用一個Provider。

我想我唯一的其他選擇是將它與多個生成的提供者進行整理,但我必須承認,這並不讓我感到舒服,因爲我知道我的項目中將有N個基本相同的類。

如果他們有類似的經歷,我真的很想聽聽其他人的消息。一旦我將所有內容整理出來併爲我的項目工作,我一定會發布我的結果。

在3.0中有這個變化嗎?這對我來說肯定是一個值得升級的理由,如果生活在這件事情上更容易...

相關問題