public static UpdateStep Deserialize(BinaryReader input) { return(new UpdateStep { StepId = input.ReadInt32(), DestinationTable = TableIdentifier.Deserialize(input), DestinationRow = RowIdentifier.Deserialize(input), ForeignKey = ColumnsWithValue.Deserialize(input) }); }
public static UpdateStep Deserialize(BinaryReader input) { var step = new UpdateStep(); step.StepId = input.ReadInt32(); step.DestinationTable = TableIdentifier.Deserialize(input); step.DestinationRow = RowIdentifier.Deserialize(input); step.ForeignKey = ColumnsWithValue.Deserialize(input); return(step); }
public static InsertStep Deserialize(BinaryReader input, FastAccessList <object> referenceTracking) { var bf = SerializationHelper.DefaultFormatter; var step = new InsertStep(); step.StepId = input.ReadInt32(); step.Depth = input.ReadInt32(); step.SourceTable = TableIdentifier.Deserialize(input); step.DestinationTable = TableIdentifier.Deserialize(input); //Variable var nbVars = input.ReadInt32(); for (int i = 0; i < nbVars; i++) { var id = input.ReadInt32(); step.Variables.Add((SqlVariable)referenceTracking[id]); } //TableSchema var tsId = input.ReadInt32(); step.TableSchema = (TableMetadata)referenceTracking[tsId]; //Datarow var nbRows = input.ReadInt32(); step.Datarow = new object[nbRows]; for (var i = 0; i < nbRows; i++) { var tag = input.ReadInt32(); var type = SerializationHelper.TagToType[tag]; if (type == typeof(SqlVariable)) { var id = input.ReadInt32(); step.Datarow[i] = referenceTracking[id]; } else { step.Datarow[i] = bf.Deserialize(input.BaseStream); } } return(step); }