internal void SetupAutoGenerated(DataTable dt)
{
foreach (DataColumn col in dt.Columns)
{
if (AutoGenerated(col))
_autogenerated[col] = col;
}
foreach (Constraint cs in dt.Constraints)
{
ForeignKeyConstraint fk = (cs as ForeignKeyConstraint);
if (null != fk)
{
if (AutoGenerated(fk))
_autogenerated[fk] = fk;
else
{
if (_autogenerated[fk.Columns[0]] != null)
_autogenerated[fk.Columns[0]] = null;
if (_autogenerated[fk.RelatedColumnsReference[0]] != null)
_autogenerated[fk.RelatedColumnsReference[0]] = null;
// special case of the ghosted constraints:
UniqueConstraint _constraint = (UniqueConstraint)fk.RelatedTable.Constraints.FindConstraint(new UniqueConstraint("TEMP", fk.RelatedColumnsReference));
if (_constraint == null)
continue;
if (_autogenerated[_constraint] != null)
_autogenerated[_constraint] = null;
if (_autogenerated[_constraint.Key.ColumnsReference[0]] != null)
_autogenerated[_constraint.Key.ColumnsReference[0]] = null;
}
}
else
{
UniqueConstraint unique = (UniqueConstraint)cs;
if (AutoGenerated(unique))
_autogenerated[unique] = unique;
else
{
if (_autogenerated[unique.Key.ColumnsReference[0]] != null)
_autogenerated[unique.Key.ColumnsReference[0]] = null;
}
}
}
}
private void CreateTablesHierarchy(DataTable dt)