If you have crazy function overloads all over the place where you have to pass a transaction object and it seems to be never ending, here is a solution for you using the Spring.NET framework which is freely available and open source.
Two interesting examples as to how you can solve many problems not just in coding but in your life too by applying the principles of unit testing. This post gives you something to think about in regards to unit testing and why to use it in a more broad perspective.