Resuable (almost automatic) Transactions

Can't afford the high costs of COM+ performance overhead in the distributed transaction co-ordinator, but still want somewhat automatic transactions? Same connection? Same Transactions, but different Dac's?

DacBase dacs = new DacBase[3];

dacs[0] = new OrderDac();
dacs[1] = new CustomerDac();
dacs[2] = new EmployeeDac();


trans = DbHelper.BeginTrans();
for i = 1 to dacs.length
{
 dacs[].update(trans)
}

trans.Commit();


OrderDac.Update(entity, trans)
CustomerDac.Update(entity, trans)