private void NonVirtualCheckState()
{
if (_DataSet == null)
{
// Make sure columns arrays are valid
_parentKey.CheckState();
_childKey.CheckState();
if (_parentKey.Table.DataSet != _childKey.Table.DataSet)
{
throw ExceptionBuilder.TablesInDifferentSets();
}
for (int i = 0; i < _parentKey.ColumnsReference.Length; i++)
{
if (_parentKey.ColumnsReference[i].DataType != _childKey.ColumnsReference[i].DataType ||
((_parentKey.ColumnsReference[i].DataType == typeof(DateTime)) && (_parentKey.ColumnsReference[i].DateTimeMode != _childKey.ColumnsReference[i].DateTimeMode) && ((_parentKey.ColumnsReference[i].DateTimeMode & _childKey.ColumnsReference[i].DateTimeMode) != DataSetDateTime.Unspecified)))
throw ExceptionBuilder.ColumnsTypeMismatch();
}
if (_childKey.ColumnsEqual(_parentKey))
{
throw ExceptionBuilder.KeyColumnsIdentical();
}
}
}