private void Run() { // Model definition building BuildModelDefinition(); // Applying mapping rules StorageMappingBuilder.Run(context); // Invoke user-defined transformations ApplyCustomDefinitions(); // Clean-up RemoveTemporaryDefinitions(); // Inspecting model definition ModelInspector.Run(context); // Applying fixup actions if (context.ModelInspectionResult.HasActions) { // Add handlers for hierarchies and types that could be created as a result of FixupProcessor work // This is done to inspect them right after construction with the help of ModelInspector var monitor = new TypeGenerationMonitor(context); monitor.Attach(); // Applying fixup actions to the model definition. FixupActionProcessor.Run(context); modelDefBuilder.ProcessTypes(); InspectAndProcessGeneratedEntities(); BuildModel(); monitor.Detach(); } else { // Simply build model BuildModel(); } }