Govinda,
>I believe the documentation states that if you register a business object as a child of another business object, they automatically participate in the transaction of the parent. But when I tried this, I found that saves within the transaction were getting committed even when there was a failed save in Obj2 or Obj3.
What kind of failures occured in Obj2 and Obj3? Were they exceptions?
>Then I tried to explicitly start and commit (or rollback) a transaction on Obj1, with the understanding that the child objects would use the parent transaction. This works when there are no validation problems. When there are validation problems and I attempt to save the second time after fixing the validation issue, I get the following: "ExecuteReader requires the command to have a transaction when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized."
We have uploaded a few hot fixes for transactions recently that may address this. I'll e-mail you directly with details.
Best Regards,
Kevin McNeish
Eight-Time .NET MVP
VFP and iOS Author, Speaker & Trainer
Oak Leaf Enterprises, Inc.
Chief Architect, MM Framework
http://www.oakleafsd.com