sql server – Como se ejecutan scripts de sql desde C#


estoy intentando hacer una pequeña utilidad para ejecutar scripts seleccionandolos desde una aplicacion en C# .NET.
Estoy intentando ejecutarlos con sqlCommand pero me esta dando un problema con los tipos de datos personalizados que tenemos en la base de datos porque me dice que no los encuentra…
Os paso el codigo que estoy utilizando para ejecutar los scripts, que son ficheros “.sql”

public bool runSqlScriptFile(string pathStoreProceduresFile, string connectionString)
    {
        try
        {
            string script = File.ReadAllText(pathStoreProceduresFile);

            // split script on GO command
            System.Collections.Generic.IEnumerable<string> commandStrings = Regex.Split(script, @"^s*GOs*$",
                                     RegexOptions.Multiline | RegexOptions.IgnoreCase);
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                foreach (string commandString in commandStrings)
                {
                    if (commandString.Trim() != "")
                    {
                        using (var command = new SqlCommand(commandString, connection))
                        {
                            try
                            {
                                command.ExecuteNonQuery();
                            }
                            catch (SqlException ex)
                            {
                                string spError = commandString.Length > 100 ? commandString.Substring(0, 100) + " ...n..." : commandString;
                                MessageBox.Show(string.Format("Please check the SqlServer script.nFile: {0} nLine: {1} nError: {2} nSQL Command: n{3}", pathStoreProceduresFile, ex.LineNumber, ex.Message, spError), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return false;
                            }
                        }
                    }
                }
                connection.Close();
            }
            return true;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            return false;
        }
    }

Y tambien el script que quiero que se ejecute (En este caso me crearia una funcion escalar en la base de datos):

    CREATE FUNCTION funPers_calcularTaraPaletizado(@IdOrden T_Id_Orden, @Bono T_Id_Bono, @IdLinea SMALLINT)
RETURNS T_Real124 AS 
BEGIN
    DECLARE @Tara T_Real124

    SELECT @Tara = SUM(isnull(oblcu.Cantidad, 0) * isnull(a.Peso, 0))
    FROM dbo.Ordenes_Bonos_Lineas_Consumo_Ubic oblcu
    join Articulos_Almacenes_Lotes aal
    on oblcu.Lote = aal.Lote
    join articulos a
    on a.IdArticulo = aal.IdArticulo
    join Conf_Articulos ca
    on ca.IdArticulo = a.IdArticulo
    WHERE IdOrden = @IdOrden AND IdBono = @Bono AND IdLinea = @IdLinea AND isnull(ca.pers_idfase, '') <> 'S4'

    RETURN (@Tara)
END
GO

El problema que me esta dando al ejecutar este script es que me dice que el tipo T_Real124 no existe cuando realmente es un tipo de datos personalizado que si que está en la base de datos.

Imagen del error

A ver si me podeis decir como se podrian ejecutar esos scripts, si existe alguna forma de ejecutarlos en C#.
Muchas gracias.
Saludos.