/// <summary>
        /// Converts a <see cref="DataValidationKind"/> to a <see cref="ValidationType"/>.
        /// </summary>
        /// <param name="dataValidationKind">The kind of data validation to convert.</param>
        /// <returns>
        /// A <see cref="ValidationType"/> converted from a <see cref="DataValidationKind"/>.
        /// </returns>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="dataValidationKind"/> is <see cref="DataValidationKind.Unknown"/>.</exception>
        public static ValidationType ToValidationType(
            this DataValidationKind dataValidationKind)
        {
            if (dataValidationKind == DataValidationKind.Unknown)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(dataValidationKind)}' == '{DataValidationKind.Unknown}'"), (Exception)null);
            }

            switch (dataValidationKind)
            {
            case DataValidationKind.AnyValue:
                return(ValidationType.AnyValue);

            case DataValidationKind.Custom:
                return(ValidationType.Custom);

            case DataValidationKind.Date:
                return(ValidationType.Date);

            case DataValidationKind.Decimal:
                return(ValidationType.Decimal);

            case DataValidationKind.List:
                return(ValidationType.List);

            case DataValidationKind.TextLength:
                return(ValidationType.TextLength);

            case DataValidationKind.Time:
                return(ValidationType.Time);

            case DataValidationKind.WholeNumber:
                return(ValidationType.WholeNumber);

            default:
                throw new NotSupportedException(Invariant($"This {nameof(DataValidationKind)} is not supported: {dataValidationKind}"));
            }
        }
 public virtual DataValidation DeepCloneWithKind(DataValidationKind kind)
 {
     throw new NotImplementedException("This method should be abstract.  It was generated as virtual so that you aren't forced to override it when you create a new model that derives from this model.  It will be overridden in the generated designer file.");
 }