/// <summary> /// Sets up the property /// </summary> /// <param name="MappingProvider">Mapping provider</param> /// <param name="QueryProvider">Query provider</param> /// <param name="Source">Source info</param> public override void Setup(ISourceInfo Source, Mapper.Manager MappingProvider, QueryProvider.Manager QueryProvider) { Structure = MappingProvider.GetStructure(Mapping.DatabaseConfigType); }
/// <summary> /// Sets up the property /// </summary> /// <param name="MappingProvider">Mapping provider</param> /// <param name="QueryProvider">Query provider</param> /// <param name="Source">Source info</param> public override void Setup(ISourceInfo Source, Mapper.Manager MappingProvider, QueryProvider.Manager QueryProvider) { ForeignMapping = MappingProvider[Type, Source]; Structure = MappingProvider.GetStructure(Mapping.DatabaseConfigType); QueryProvider.Generate<ClassType>(Source, Mapping, Structure).SetupLoadCommands(this); }
/// <summary> /// Sets up the specified database schema /// </summary> /// <param name="Mappings">The mappings.</param> /// <param name="Database">The database.</param> /// <param name="QueryProvider">The query provider.</param> /// <param name="Structure">The structure.</param> public void Setup(ListMapping <IDatabase, IMapping> Mappings, IDatabase Database, QueryProvider.Manager QueryProvider, Graph <IMapping> Structure) { var TempSource = SourceProvider.GetSource(Database.Name); var TempDatabase = new Schema.Default.Database.Database(Regex.Match(TempSource.Connection, "Initial Catalog=(.*?;)").Value.Replace("Initial Catalog=", "").Replace(";", "")); SetupTables(Mappings, Database, TempDatabase, Structure); SetupJoiningTables(Mappings, Database, TempDatabase); SetupAuditTables(Database, TempDatabase); foreach (ITable Table in TempDatabase.Tables) { Table.SetupForeignKeys(); } var Commands = GenerateSchema(TempDatabase, SourceProvider.GetSource(Database.Name)).ToList(); var Batch = QueryProvider.Batch(SourceProvider.GetSource(Database.Name)); for (int x = 0; x < Commands.Count; ++x) { if (Commands[x].ToUpperInvariant().Contains("CREATE DATABASE")) { QueryProvider.Batch(SourceProvider.GetSource(Regex.Replace(SourceProvider.GetSource(Database.Name).Connection, "Initial Catalog=(.*?;)", ""))).AddCommand(null, null, CommandType.Text, Commands[x]).Execute(); } else if (Commands[x].Contains("CREATE TRIGGER") || Commands[x].Contains("CREATE FUNCTION")) { if (Batch.CommandCount > 0) { Batch.Execute(); Batch = QueryProvider.Batch(SourceProvider.GetSource(Database.Name)); } Batch.AddCommand(null, null, CommandType.Text, Commands[x]); if (x < Commands.Count - 1) { Batch.Execute(); Batch = QueryProvider.Batch(SourceProvider.GetSource(Database.Name)); } } else { Batch.AddCommand(null, null, CommandType.Text, Commands[x]); } } Batch.Execute(); }
/// <summary> /// Constructor /// </summary> /// <param name="Provider">The provider.</param> /// <param name="SourceProvider">The source provider.</param> public SQLServerSchemaGenerator(QueryProvider.Manager Provider, SourceProvider.Manager SourceProvider) { this.Provider = Provider; this.SourceProvider = SourceProvider; }
/// <summary> /// Sets up the property /// </summary> /// <param name="MappingProvider">Mapping provider</param> /// <param name="QueryProvider">Query provider</param> /// <param name="Source">Source info</param> public override void Setup(ISourceInfo Source, Mapper.Manager MappingProvider, QueryProvider.Manager QueryProvider) { ForeignMapping = MappingProvider[Type, Source]; QueryProvider.Generate <ClassType>(Source, Mapping).SetupLoadCommands(this); }
/// <summary> /// Called to create a batch that saves items from the joining tables /// </summary> /// <param name="Object">Object</param> /// <param name="Source">Source info</param> /// <param name="ObjectsSeen">Objects seen thus far</param> /// <returns>Batch object with the appropriate commands</returns> public override IBatch CascadeJoinsSave(ClassType Object, ISourceInfo Source, IList <object> ObjectsSeen) { QueryProvider.Manager Provider = IoC.Manager.Bootstrapper.Resolve <QueryProvider.Manager>(); return(Provider.Batch(Source)); }
/// <summary> /// Sets up the property /// </summary> /// <param name="MappingProvider">Mapping provider</param> /// <param name="QueryProvider">Query provider</param> /// <param name="Source">Source info</param> public override void Setup(ISourceInfo Source, Mapper.Manager MappingProvider, QueryProvider.Manager QueryProvider) { }