Du kannst RaiseError als Command durch den Context abschicken. Du musst allerdings den Fehler, den RaiseError innerhalb der .Net Sproc auslöst abfangen und schlucken.
Dann könnte es funktionieren:
Code:
static void RaiseError(int messageId, int severity, int state)
{
using (SqlCommand command = new SqlCommand("RaiseError(@messageId, @severity, @state)"))
{
command.Parameters.AddWithValue("messageId", messageId);
command.Parameters.AddWithValue("severity", severity);
command.Parameters.AddWithValue("state", state);
try
{
SqlContext.Pipe.ExecuteAndSend(command);
}
catch {/*nüschts*/}
}
}
static void RaiseError(string messageText, int severity, int state)
{
using (SqlCommand command = new SqlCommand("RaiseError(@messageText, @severity, @state)"))
{
command.Parameters.AddWithValue("messageText", messageText);
command.Parameters.AddWithValue("severity", severity);
command.Parameters.AddWithValue("state", state);
try
{
SqlContext.Pipe.ExecuteAndSend(command);
}
catch {/*nüschts*/}
}
}
Keine Ahnung, ob das so stimmt. TSQL und das Fehlen von Exceptions darin sind so abartig...