- internal void postAddRange (DataTable childTable)
- {
- // LAMESPEC - Does not say that this is mandatory
- // Check whether childTable belongs to a DataSet
- if (childTable.DataSet == null)
- throw new InvalidConstraintException ("ChildTable : " + childTable.TableName + " does not belong to any DataSet");
- DataSet dataSet = childTable.DataSet;
- _childTableName = childTable.TableName;
- // Search for the parentTable in the childTable's DataSet
- if (!dataSet.Tables.Contains (_parentTableName))
- throw new InvalidConstraintException ("Table : " + _parentTableName + "does not exist in DataSet : " + dataSet);
-
- // Keep reference to parentTable
- DataTable parentTable = dataSet.Tables [_parentTableName];
-
- int i = 0, j = 0;
-
- // LAMESPEC - Does not say which Exception is thrown
- if (_parentColumnNames.Length < 0 || _childColumnNames.Length < 0)
- throw new InvalidConstraintException ("Neither parent nor child columns can be zero length");
- // LAMESPEC - Does not say which Exception is thrown
- if (_parentColumnNames.Length != _childColumnNames.Length)
- throw new InvalidConstraintException ("Both parent and child columns must be of same length");
- DataColumn []parentColumns = new DataColumn [_parentColumnNames.Length];
- DataColumn []childColumns = new DataColumn [_childColumnNames.Length];
-
- // Search for the parentColumns in parentTable
- foreach (string parentCol in _parentColumnNames){
- if (!parentTable.Columns.Contains (parentCol))
- throw new InvalidConstraintException ("Table : " + _parentTableName + "does not contain the column :" + parentCol);
- parentColumns [i++] = parentTable. Columns [parentCol];
- }
- // Search for the childColumns in childTable
- foreach (string childCol in _childColumnNames){
- if (!childTable.Columns.Contains (childCol))
- throw new InvalidConstraintException ("Table : " + _childTableName + "does not contain the column : " + childCol);
- childColumns [j++] = childTable.Columns [childCol];
- }
- _validateColumns (parentColumns, childColumns);
- _parentColumns = parentColumns;
- _childColumns = childColumns;
+ internal override void FinishInit (DataTable childTable)
+ {
+ if (childTable.DataSet == null)
+ throw new InvalidConstraintException ("ChildTable : " + childTable.TableName + " does not belong to any DataSet");
+
+ DataSet dataSet = childTable.DataSet;
+ _childTableName = childTable.TableName;
+
+ if (!dataSet.Tables.Contains (_parentTableName))
+ throw new InvalidConstraintException ("Table : " + _parentTableName + "does not exist in DataSet : " + dataSet);
+
+ DataTable parentTable = dataSet.Tables [_parentTableName];
+
+ int i = 0, j = 0;
+
+ if (_parentColumnNames.Length < 0 || _childColumnNames.Length < 0)
+ throw new InvalidConstraintException ("Neither parent nor child columns can be zero length");
+
+ if (_parentColumnNames.Length != _childColumnNames.Length)
+ throw new InvalidConstraintException ("Both parent and child columns must be of same length");
+ DataColumn[] parentColumns = new DataColumn [_parentColumnNames.Length];
+ DataColumn[] childColumns = new DataColumn [_childColumnNames.Length];
+
+ foreach (string parentCol in _parentColumnNames){
+ if (!parentTable.Columns.Contains (parentCol))
+ throw new InvalidConstraintException ("Table : " + _parentTableName + "does not contain the column :" + parentCol);
+ parentColumns [i++] = parentTable. Columns [parentCol];
+ }
+
+ foreach (string childCol in _childColumnNames){
+ if (!childTable.Columns.Contains (childCol))
+ throw new InvalidConstraintException ("Table : " + _childTableName + "does not contain the column : " + childCol);
+ childColumns [j++] = childTable.Columns [childCol];
+ }
+ _validateColumns (parentColumns, childColumns);
+ _parentColumns = parentColumns;
+ _childColumns = childColumns;
+#if NET_2_0
+ parentTable.Namespace = _parentTableNamespace;
+#endif
+ InitInProgress = false;