LLBLGen Pro 2.5 SS
How do I implement the following within a transaction so if any of the stored procedures return an error I need an entire rollback. I also need to keep in mind that in the future there may be ADO.NET code hitting the same database directly using ADO.NET or LINQ but not using LLBLGen Pro (so I cannot use the LLBLGen Pro transaction). Is there a way to implement this code within a transaction but also allowing the use of a regular .NET DB Transaction object to include other .NET DB functions (non LLBLGen Pro related) code within that same transaction?
Public Sub Copy(ByVal FromAssyID As Integer, ByVal ToAssyID As Integer) Implements [Interface].Core.IAssyCopy.Copy
'TODO: Implement Within A Transaction
''Dim tran As New ORM.HelperClasses.Transaction(IsolationLevel.ReadUncommitted, "CopyTransaction")
CopyMainAssyRecord(FromAssyID, ToAssyID)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldSpec_Detail(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldSpec_Spot(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldImages_Spot(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldSpec_Mig(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldSpec_Mig_Segments(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldImages_Mig(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldSpec_Proj(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldImages_Proj(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_WeldImages_VisualAids(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_Schedule_Mig(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_Schedule_Proj(FromAssyID, ToAssyID) ', tran)
ORM.StoredProcedureCallerClasses.ActionProcedures.Copy_Schedule_Spot(FromAssyID, ToAssyID) ', tran)
End Sub
Private Sub CopyMainAssyRecord(ByVal FromAssyID As Integer, ByVal ToAssyID As Integer)
'only records in the main tblAssy table that need to be copied over are the destruct times
Dim assyFrom As New ORM.EntityClasses.DestructTimesEntity(FromAssyID)
Dim assyTo As New ORM.EntityClasses.DestructTimesEntity(ToAssyID)
assyTo.Spot_DestructTime_Minutes = assyFrom.Spot_DestructTime_Minutes
assyTo.Proj_DestructTime_Minutes = assyFrom.Proj_DestructTime_Minutes
assyTo.Mig_DestructTime_Minutes = assyFrom.Mig_DestructTime_Minutes
assyTo.Save()
End Sub