示例#1
0
 /// <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);
 }
示例#3
0
        /// <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();
        }
示例#4
0
 /// <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);
 }
示例#6
0
 /// <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));
 }
示例#7
0
 /// <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)
 {
 }