Оператор using работает с интерфейсом IDisposable, поэтому другой вариант может заключаться в создании некоторого типа составного класса, который реализует IDisposable и имеет ссылки на все объекты IDisposable, которые вы обычно помещаете в оператор using. Обратной стороной этого является то, что вы должны сначала объявить свои переменные и выходить за пределы области видимости, чтобы они были полезны в блоке using, требуя больше строк кода, чем требовалось бы для некоторых других предложений.
Connection c = new ...;
Transaction t = new ...;
using (new DisposableCollection(c, t))
{
...
}
Конструктор для DisposableCollection в этом случае является массивом params, поэтому вы можете вводить столько, сколько хотите.