public static ModelPropertyType ToModelPropertyType(this SqlDataType sqlDataType)
        {
            if (sqlDataType == null)
            {
                throw new ArgumentNullException(nameof(sqlDataType));
            }

            var logicalType = sqlDataType.ToModelPropertyLogicalType();

            if (logicalType == ModelPropertyLogicalType.List)
            {
                return(new ModelPropertyType
                {
                    LogicalType = logicalType,
                    ObjectTypeName = null,
                    ListItemType = new ModelPropertyType
                    {
                        LogicalType = ModelPropertyLogicalType.Byte,
                        ObjectTypeName = null,
                        ListItemType = null,
                    }
                });
            }

            if (logicalType == ModelPropertyLogicalType.Object)
            {
                return(new ModelPropertyType
                {
                    LogicalType = logicalType,
                    ObjectTypeName = sqlDataType.SqlTypeName,
                    ListItemType = null,
                });
            }

            return(new ModelPropertyType
            {
                LogicalType = logicalType,
                ObjectTypeName = null,
                ListItemType = null,
            });
        }