bool ColumnsChanged(DiffTable dif, Index mix)
{
if (this.Columns.Count != mix.Columns.Length)
return true;
var difColumns = this.Columns.Select(cn => dif.Columns.Values.SingleOrDefault(dc => dc.Name == cn)).ToList();
var perfect = difColumns.ZipOrDefault(mix.Columns, (dc, mc) => dc != null && mc != null && dc.ColumnEquals(mc, ignorePrimaryKey: true)).All(a => a);
return !perfect;
}