[Serializable] public class CustomerProductSaver : CommandBase { public CustomerEdit Customer { get; private set; } public ProductEdit Customer { get; private set; } public static CustomerProductSaver SaveObjects( CustomerEdit customer, ProductEdit product) { var cmd = new CustomerProductSaver { Customer = customer, Product = product }; cmd = DataPortal.Execute(cmd); return cmd; } [Transactional(TransactionTypes.TransactionScope)] protected override void DataPortal_Execute() { using (var ctx = ConnectionManager.GetManager(...)) { Customer = Customer.Save(); Product = Product.Save(); } } }