2008-08-30 50 views
1

一個DataSet應該代表多少?使用訂購系統的例子:在展示您的訂單時,我還會顯示與您的訂單系列相似的商品列表以及我們最受歡迎的商品列表。 雖然您的物品纏繞在涉及您和您的過去訂單,首選供應商以及與您作爲客戶有關的各種其他信息的關係網絡中,但其他物品並沒有這些相同的關係。我用來瀏覽代表你的東西的一組查詢與我用於這些其他項目列表的查詢不同。一個DataSet應該代表多少?

我的傾向是爲不同類型的關係創建不同的數據集,但然後我創建了十個單獨的項目DataTables,這似乎是錯誤的。當我實例化較大的DataSet時,即使我只對一個看起來不正確的小子集感興趣,並且當我試圖將所有這些打包到一個DataSet中時,我都會看到一個很大的雜亂的東西,其中有幾個項目表相鄰,而我很確定這是錯誤的。

也許我高估了DataSet的關係特性,或者我只是需要克服自己,無論哪種方式我都可以使用一些指導。

回答

1

這就是爲什麼我不使用數據集。如果您使用強類型數據集,您可以從強類型中受益,但是您需要花費時間來創建一個數據集,即使您只是使用它的一部分,以及它在代碼庫方面的可擴展性。如果你想修改一個已存在的行並修改行定義,那麼這將在代碼庫中創建「霰彈槍」中斷,因爲添加新行的每個定義將不得不進行修改,因爲它不再編譯。

爲了避免上述情況,最明智的方法是通常放棄合理的重複使用。根據用途和用途定義數據集。然而,與此相關的主要問題是API的使用,最終得到的數據集與其他數據集相似,但因爲它是不同的數據集類型,所以必須將其轉換爲使用通用API,這既痛苦又不雅。

此外,強類型數據集使您的代碼看起來很可怕(類型聲明的長度)這一事實是我放棄數據集並切換到業務對象的原因。

4

數據集大大被高估和過度使用。使用強類型集合(謝謝你,泛型和自動屬性!)。作爲錦上添花的功能,現在您甚至可以使用LINQ對自定義對象進行很酷的查詢。

對數據集

好埃斯波西託文章與自定義對象:

http://msdn.microsoft.com/en-us/magazine/cc163751.aspx

自動屬性:

http://weblogs.asp.net/dwahlin/archive/2007/12/04/c-3-0-features-automatic-properties.aspx

LINQ與你的對象:

http://blogs.msdn.com/wriju/archive/2006/09/16/linq-custom-object-query.aspx

相關問題