I am fighting with the error "Transaction context in use by another session." There is a setting in the SQL Compare GUI, but how do I use that setting in the SDK?
How do I ensure the setting is applied when the code is ran on a computer that does not have the GUI installed?
Possibly I could manually String.Replace the script before executing, but that is not apparent how to perform the string replacement either.
EDIT: I was able to figure out how to modify the script, but is this the best way to do this?
- Code: Select all
using (var block = work.ExecutionBlock)
String myscript = block.GetString();
myscript = myscript.Replace("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE", "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
using (var myblock = BlockLoader.LoadFromString(myscript))
if (settings.SqlServerUserName == "")
blockExecutor.ExecuteBlock(myblock, stagingDBConnectionProperties.ServerName, stagingDBConnectionProperties.DatabaseName);
blockExecutor.ExecuteBlock(myblock, stagingDBConnectionProperties.ServerName, stagingDBConnectionProperties.DatabaseName, false, stagingDBConnectionProperties.UserName, stagingDBConnectionProperties.Password);