[Serializable()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Diagnostics.DebuggerStepThrough()] [System.ComponentModel.ToolboxItem(true)] public class MyDataSet : GeneratedTypedDataSet { #region Constructor public MyDataSet(SerializationInfo info, StreamingContext context) : base(info, context) { } public MyDataSet() { } #endregion #region Properties [System.ComponentModel.Browsable(false)] [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Content)] public tableDataTable MyTableOne { get {return this.table;} } [System.ComponentModel.Browsable(false)] [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Content)] public Table1DataTable MyTableTwo { get {return this.Table1;} } [System.ComponentModel.Browsable(false)] [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Content)] public Table2DataTable MyTableThree { get {return this.Table2;} } #endregion }And then you would use the MyDataSet class for your DataSet rather than using the GeneratedTypedDataSet. I know it looks like a lot of work and extra steps to go through, but it's really not bad and working with Typed DataSets definitely has it's advantages. (My opinion anyway)