我可能會負責將vb6應用程序移植到c#。此應用程序是一個Windows應用程序,與訪問數據庫交互。數據訪問被封裝在基本業務對象中。基本上是一個表的一個類。現有的vb6業務對象通過DAO讀取和寫入數據庫。我之前幾次編寫過DAL和ORM,但它們都只針對SQL Server。這將需要目標訪問和SQL Server。在以前的項目中,我會將SQL字符串放在業務對象的私有部分中,並可能將冗餘SQL代碼(如連接,創建命令)移入公共基類以減少代碼。你在哪裏把SQL語句放到你的C#項目中?
這一次,我正在考慮將SQL字符串寫入.settings文件或其他鍵/值類型的文本文件。然後,我會編寫一個sql工具來編輯這個文件,並允許我運行和測試參數化查詢。這些查詢將在業務對象中被名稱引用,而不是將sql嵌入到代碼中。
我知道一個標準的方法是爲每個目標數據庫創建一個DAL,並擁有DAL使用的配置狀態。我真的不想爲每個數據庫創建兩個DAL類。如果我只是通過keyname引用了正確的查詢並且具有適當的連接類型,那麼它看起來好像會少一些代碼。
那麼,你們是否在做這樣的事情?你會如何處理這個問題? 什麼最適合你?
謝謝!
我已經使用了這種方法,我喜歡它。與大多數人不同,我不同意在運行時即時更改代碼,即使是簡單的SQL語句,所以使用程序集進行編譯這一事實對我來說是一個很好的補充。 – Chris 2009-03-08 16:25:17
很高興聽到這種方法正在被其他人使用和歡迎! :-)我同意 - 有時將東西烘焙到您的編譯位中是一件好事。 – 2009-03-08 17:34:48