2010-06-25 104 views
1

這是一個概念性問題,而不是任何東西。繼承的類返回不同的值

我有一個名爲「RawReader」的基類。

它建立了類繼承和讀取特定數據系統的框架。例如,我想要以已知格式的FoxPro數據庫,CSV文件或SQL數據庫(當前大約有8種格式)讀取應用程序,然後通過Web服務傳輸它並從其創建SQL數據庫它。

我有一切使用CSV,FoxPro,Access,Excel等......很簡單。

繼承RawReader的類,如RawCSV,RawFoxPro,RawAccess都會返回一個包含作爲其中一個成員的數據集的結構。數據集包含來自原始系統的數據。 webservice接收這個結構並創建sql表並將數據加載到它中。這已經被編碼並且效果很好。

我的問題現在來閱讀SQL。顯然,我可以遵循相同的路徑,將遠程SQL數據庫讀入數據集,像上面那樣傳輸數據集等等。我的「問題」出現在我認爲將SQL數據庫傳輸到數據集,通過web服務傳輸它,然後嘗試以編程方式重新創建SQL數據庫。我覺得我從SQL數據庫中丟失了很多細節信息(字段大小,擴展信息等等)。在實踐中,創建數據庫的備份,將其轉換爲流對象並傳輸備份似乎更容易轉到web服務。但這是問題所在......

由於所有的類都是從基類繼承的,所以它們被設置爲返回一個DataSet。 hack-ish的方式是將流對象添加到返回結構中,並在我的webservice中添加其他代碼以爲SQL源創建特例,但我試圖避免這種情況。

任何關於「正確」的方式去這樣的事情的想法?

回答

0

我真的沒有看到問題,DataColumn,DataTable和DataSet有一個ExtendedProperties成員,它允許你附加任意的元數據。您的RawXxx閱讀器都可以假設數據最終將在SQL數據庫中結束,這樣他們都可以同意命名這些元數據項。在接收端,您只需要處理缺失的元數據項目。

+0

謝謝,我想我最終會用它來存儲接收端的娛樂列信息。我知道我錯過了明顯的東西! – Wolfmarsh 2010-06-25 17:38:12