Essas várias consultas concatenadas são conhecidas como
batch
na linguagem .net. Você deve informar ao conector MySQL (o driver .net para MySQL) que deseja usar lotes em sua string de conexão. Use o
AllowBatch
opção
. Algo assim:
var connectionString = Server=host;Database=db;Uid=user;Pwd=pass;AllowBatch=True;
Você não pode incluir chamadas de procedimento armazenado em um lote. Eles devem ficar sozinhos com
...CommandType=CommandType.StoredProcedure
. Mas isso pode não funcionar dependendo das versões do servidor e do conector. Se não usar apenas sua solução alternativa de "cortar" as instruções SQL. Funciona bem e não atrapalha o desempenho de uma maneira horrível.