private void Create(string relationName, DataColumn[] parentColumns, DataColumn[] childColumns)
{
if (parentColumns.Length == 0 || childColumns.Length == 0)
{
throw ExceptionBuilder.KeyLengthZero();
}
if (parentColumns.Length != childColumns.Length)
{
throw ExceptionBuilder.KeyLengthMismatch();
}
for (int i = 0; i < parentColumns.Length; i++)
{
if (parentColumns[i].Computed)
{
throw ExceptionBuilder.ExpressionInConstraint(parentColumns[i]);
}
if (childColumns[i].Computed)
{
throw ExceptionBuilder.ExpressionInConstraint(childColumns[i]);
}
}
_parentKey = new DataKey(parentColumns, true);
_childKey = new DataKey(childColumns, true);
ConstraintName = relationName;
NonVirtualCheckState();
}