/// <summary>复制数据表到另一个数据表,复制所有数据列、索引和关系</summary> /// <param name="src"></param> /// <param name="des"></param> /// <param name="resetColumnID">是否重置列ID</param> /// <returns></returns> public static IDataTable CopyAllFrom(this IDataTable src, IDataTable des, Boolean resetColumnID = false) { src.CopyFrom(des); src.Columns.AddRange(des.Columns.Select(i => src.CreateColumn().CopyFrom(i))); src.Indexes.AddRange(des.Indexes.Select(i => src.CreateIndex().CopyFrom(i))); src.Relations.AddRange(des.Relations.Select(i => src.CreateRelation().CopyFrom(i))); // 重载ID //if (resetColumnID) src.Columns.ForEach((it, i) => it.ID = i + 1); if (resetColumnID) { for (int i = 0; i < src.Columns.Count; i++) { src.Columns[i].ID = i + 1; } } return(src); }