Пример #1
0
        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();
            }
        }