In Mono 2.11.4 (and other versions), SqlDataReader::ExecuteReader() is not working in the same way as Microsoft.NET.
--- Example ---
SqlConnection myConnection = new SqlConnection("user id=<user>;password=<pw>;server=<host>,<port>;database=<db>");
myCommand = new SqlCommand("BEGIN TRANSACTION", myConnection);
// BUG: Doesn't work on Mono, but works on Microsoft.NET
reader = myCommand.ExecuteReader();
// OK: Works fine on Mono and Microsoft.NET
The same occurs for other NonQuery commands like "SET IDENTITY_INSERT <table> ON".
This is breaking MSSQL Support on Phalanger (see: https://github.com/DEVSENSE/Phalanger/issues/29)
I forgot to mention that using ExecuteReader() instead of ExecuteNonQuery() for the command "BEGIN TRANSACTION" generates the following error with Mono (not with MS.NET):
Command execution failed: Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1.
Mono 5.10 has significantly improved System.Data implementation which should resolve this issue. If you can still reproduce it please reopen the issue.