In my previous post I described a problem when Typed Dataset merged into un-typed dataset.
I've reviewed the code of Dataset.Merge using Reflector and found, that if table doesn't exist in the current dataset, Table.Clone is called(in internal private DataTable Merger.MergeSchema function) to add a new table to the dataset.Unfortunately,they do not call virtual Table.Clone() method, that is overridden by the derived typed dataset, but use
internal DataTable Clone(DataSet cloneDS),which can't be overridden by the derived class.
Dataset.Merge should invoke virtual Table.Clone for copied tables.
I've posted this as a suggestion to Microsoft.