private GenerationContext(GenerationContext original)
 {
     Parameters = original.Parameters;
     Variables = new Dictionary<string, string>(original.Variables);
     SchemaLoader = original.SchemaLoader;
     ExtendedTypes = new Dictionary<Column, ExtendedTypeAndName>(original.ExtendedTypes);
     AllImplementations = new List<IImplementation>(original.AllImplementations);
 }
 public void Write(TextWriter textWriter, Database dbSchema, GenerationContext context)
 {
     Context = context;
     Provider.CreateGenerator(textWriter).GenerateCodeFromNamespace(
         GenerateCodeDomModel(dbSchema), textWriter, 
         new CodeGeneratorOptions() {
             BracingStyle = "C",
             IndentString = "\t",
         });
 }