public override void Wrong2() { // Create too-long-living connection, possibly used by different threads using (var connectionResolver = new SingletonSqlConnectionResolver(_connectionString)) { TryCreateOrder(connectionResolver, "Order1"); TryCreateOrder(connectionResolver, "Order2"); } }
public override void Wrong2() { // Create single too-long-living connection using (var connectionResolver = new SingletonSqlConnectionResolver(_connectionString)) { ExecuteLongRunningTask(connectionResolver, "Task1", false); ExecuteLongRunningTask(connectionResolver, "Task2", true); } }
public override void Right() { // Create and dispose single connection per transaction (e.g. web request) using (var connectionResolver = new SingletonSqlConnectionResolver(_connectionString)) { TryCreateOrder(connectionResolver, "Order1"); } using (var connectionResolver = new SingletonSqlConnectionResolver(_connectionString)) { TryCreateOrder(connectionResolver, "Order2"); } }