/// <summary> /// Imports the configuration database table. /// </summary> private void ImportBaseTable(DataTable srcTable, IBaseTable destTable) { // add primary keys if needed if (!srcTable.Columns.Contains(destTable.PrimaryKey)) { srcTable.Columns.Add(destTable.PrimaryKey, typeof(int)); srcTable.BeginLoadData(); int colInd = srcTable.Columns.Count - 1; var id = 1; foreach (DataRow row in srcTable.Rows) { row[colInd] = id++; } srcTable.EndLoadData(); srcTable.AcceptChanges(); } // merge data destTable.Modified = true; var destProps = TypeDescriptor.GetProperties(destTable.ItemType); foreach (DataRowView srcRowView in srcTable.DefaultView) { object destItem = TableConverter.CreateItem(destTable.ItemType, srcRowView.Row, destProps); destTable.AddObject(destItem); } }