天天看點

類型化資料集與非類型化資料集

類型化資料集與非類型化資料集  

  資料集可以類型化或非類型化。類型化資料集這樣一種資料集,它先從基   DataSet   類派生,然後使用   XML   架構檔案(.xsd   檔案)中的資訊生成新類。架構中的資訊(表、列等)被作為一組第一類對象和屬性生成并編譯為此新資料集類。  

  因為類型化   DataSet   類從基   DataSet   類繼承,是以此類型化類承接   DataSet   類的所有功能,并且可與将   DataSet   類的執行個體作為參數的方法一起使用。  

  相形之下,非類型化資料集沒有相應的内置架構。與類型化資料集一樣,非類型化資料集也包含表、列等,但它們隻作為集合公開。(不過,手動建立了表和非類型化資料集中的其他資料元素後,可以使用資料集的   WriteXmlSchema   方法将資料集的結構導出為架構。)  

  在應用程式中可以使用這兩種類型中的任何一種。不過,Visual   Studio   對類型化資料集有更多工具支援,并且,類型化資料集使對資料集的程式設計更簡單且不易出錯。  

  類型化通路不但更易于讀取,而且完全受   Visual   Studio   代碼編輯器中智能感覺的支援。除了更易于使用外,類型化資料集的文法還在編譯時提供類型檢查,進而大大降低了為資料內建員指派時發生錯誤的可能性。在運作時對類型化資料集中的表和列的通路也略為快一些,因為通路是在編譯時确定的,而不是在運作時通過集合确定。  

  盡管類型化資料集有許多優點,但在許多情況下需要使用非類型化資料集。最顯而易見的情形是資料集無架構可用。例如,當應用程式正在與傳回資料集的元件互動而您事先不知道其結構是哪種時,便會出現這種情況。同樣,有些時候使用的資料不具有靜态的可預知結構,這種情況下使用類型化資料集是不切實際的做法,因為對于資料結構中的每個更改,您都必須重新生成類型化資料集類。  

  更常見的是,許多時候可能需要動态建立無可用架構的資料集。這種情況下,資料集隻是一種友善的、可用來保留資訊的結構(隻要資料可以用關系方法表示)。