But if you are using one unit of work at each time, what is the problem of opening a transaction, doing your work, and closing the transaction? You have 1000+ forms but each form (or a combination of a few forms) will have its own unit of work and thus its own start/commit sequence. Why do you need to use a different transaction for it?