天天看點

關于DataSet與Strongly typed DataSet幾點思考(原創)

關于DataSet與Strongly typed DataSet幾點思考

DataSet可以把看成一個資料庫,也可以看成資料集。而Strongly typed DataSet從DataSet繼承而來,并擴充了屬性與方法。

很多人一直認為Strongly typed DataSet效率一定比DataSet高。哪也未必。

你可以填充一資料集,但是填充的時候不要超過100行,循環100或者1000次試試。就知道哪個效率更高。

哪為什麼Strongly typed DataSet在填充方面效率沒有比DataSet高呢。大家可以看看,Strongly typed DataSet不僅需要構造DataSet,而且還要構造,自動生成的許多代碼。這是它還不夠簡潔,是以它在填充方面速度并不快。

因為我們在使用Strongly typed DataSet時,是使用的屬性去通路,而在屬性通路的時候,其本質是通過索引通路。(這個在部落格園已經有人論證過了。)是以就有人一直認為強類型的DataSet比DataSet速度快。

Strongly typed DataSet的缺點已經說了。哪如何構造我們所需要的DataSet? ^-^

其實我們并不怕消耗記憶體,就怕消耗在記憶體的東西不再使用。其實可以建立一個對象池來管理所構造的Strongly typed DataSet,這樣将它緩存。效率提高了2-10倍。

但是對于一個追求簡潔的程式來說,雖然它已經是個非常不錯的解決方案,但是我們還可以使用其它方案,提高代碼的簡潔。

相信Duwamish大家都看過,它使用的是DataSet,但是它并不是強類型化。但是執行效率仍然很高(因為我們的資料量不會太大)。如果大家對它的通路通過索引的,哪執行效率将會更高,這是我推薦的。因為是自定義的,是以足夠靈活。而不會像Strongly typed DataSet哪樣。不過你也可以将Strongly typed DataSet做成像Duwamish中的資料類。

如果從可維護性方面,哪Strongly typed DataSet可能會好些,但是如果代碼寫得好,也不見得使用類似Duwamish中的DataSet會差。而且我覺得可能還會更好些,隻要大家對它進行擴充就行了。

基類DataSet這個沒什麼好說的,大家都用得比我還熟。^-^

OVER!

轉載于:https://www.cnblogs.com/yi/archive/2006/06/16/427735.html