public static object CreateParameters(
     Type clrType,
     int?size         = null,
     bool unicide     = false,
     bool fixedLength = false,
     StoreTypeModifierKind storeTypeModifier = StoreTypeModifierKind.PrecisionAndScale)
 {
     return(new RelationalTypeMappingParameters(
                new CoreTypeMappingParameters(
                    clrType,
                    new FakeValueConverter(),
                    new FakeValueComparer(),
                    new FakeValueComparer()),
                "<original>",
                storeTypeModifier,
                System.Data.DbType.VarNumeric,
                size: size,
                unicode: unicide,
                fixedLength: fixedLength));
 }
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public SqlServerUdtTypeMapping(
            [NotNull] Type clrType,
            [NotNull] string storeType,
            StoreTypeModifierKind storeTypeModifier = StoreTypeModifierKind.None,
            [CanBeNull] string udtTypeName          = null,
            [CanBeNull] ValueConverter converter    = null,
            [CanBeNull] ValueComparer comparer      = null,
            [CanBeNull] ValueComparer keyComparer   = null,
            DbType?dbType    = null,
            bool unicode     = false,
            int?size         = null,
            bool fixedLength = false,
            int?precision    = null,
            int?scale        = null)
            : base(new RelationalTypeMappingParameters(
                       new CoreTypeMappingParameters(
                           clrType, converter, comparer, keyComparer), storeType, storeTypeModifier, dbType, unicode, size, fixedLength, precision, scale))

        {
            UdtTypeName = udtTypeName ?? storeType;
        }
            /// <summary>
            ///     Creates a new <see cref="RelationalTypeMappingParameters" /> parameter object.
            /// </summary>
            /// <param name="coreParameters"> Parameters for the <see cref="CoreTypeMapping"/> base class. </param>
            /// <param name="storeType"> The name of the database type. </param>
            /// <param name="storeTypeModifier"> Indicates which values should be appended to the store type name. </param>
            /// <param name="dbType"> The <see cref="System.Data.DbType" /> to be used. </param>
            /// <param name="unicode"> A value indicating whether the type should handle Unicode data or not. </param>
            /// <param name="size"> The size of data the property is configured to store, or null if no size is configured. </param>
            /// <param name="fixedLength"> A value indicating whether the type is constrained to fixed-length data. </param>
            /// <param name="precision"> The precision of data the property is configured to store, or null if no size is configured. </param>
            /// <param name="scale"> The scale of data the property is configured to store, or null if no size is configured. </param>
            public RelationalTypeMappingParameters(
                CoreTypeMappingParameters coreParameters,
                [NotNull] string storeType,
                StoreTypeModifierKind storeTypeModifier = StoreTypeModifierKind.None,
                DbType?dbType    = null,
                bool unicode     = false,
                int?size         = null,
                bool fixedLength = false,
                int?precision    = null,
                int?scale        = null)
            {
                Check.NotEmpty(storeType, nameof(storeType));

                CoreParameters    = coreParameters;
                StoreType         = storeType;
                StoreTypeModifier = storeTypeModifier;
                DbType            = dbType;
                Unicode           = unicode;
                Size        = size;
                Precision   = precision;
                Scale       = scale;
                FixedLength = fixedLength;
            }