private void HandleUpdateSubmission(object objectToSubmit, object originalValues, object keyPropertyValue, SqlCommandSubmitter objectSubmitter) { UpdateCommandBuilder updateCommandBuilder = new UpdateCommandBuilder(); updateCommandBuilder.Build(objectToSubmit, originalValues, objectSubmitter.SqlUpdateCommands); InsertedObjectFinder insertedObjectFinder = new InsertedObjectFinder(); insertedObjectFinder.Run(originalValues, objectToSubmit); while (insertedObjectFinder.InsertedObjects.Count != 0) { object objectToInsert = insertedObjectFinder.InsertedObjects.Dequeue(); InsertCommandBuilder insertCommandBuilder = new InsertCommandBuilder(); insertCommandBuilder.Build(objectToInsert, objectSubmitter.SqlInsertCommands, objectSubmitter.SqlInsertLastCommands); } DeletedObjectFinder deletedObjectFinder = new DeletedObjectFinder(); deletedObjectFinder.Run(originalValues, objectToSubmit); while (deletedObjectFinder.DeletedObjects.Count != 0) { object objectToDelete = deletedObjectFinder.DeletedObjects.Dequeue(); DeleteCommandBuilder deleteCommandBuilder = new DeleteCommandBuilder(); deleteCommandBuilder.Build(objectToDelete, objectSubmitter.SqlDeleteFirstCommands, objectSubmitter.SqlDeleteCommands); } }