Esempio n. 1
0
        protected override void Execute()
        {
            DatabaseSchemaReader r = this.DatabaseSchemaReader;
            var names      = this.Names;
            var totalCount = names.Count;
            var tt         = new List <Table>();
            var ss         = new List <MetaData.StoredProcedure>();

            for (int i = 0; i < totalCount; i++)
            {
                var name = names[i];
                var t    = r.GetTable(name);

                var tExisted = this.SchemaData.Tables.FirstOrDefault(el => el.Name == t.Name);
                if (tExisted == null)
                {
                    tt.Add(t);
                }
                else
                {
                    foreach (var parameter in t.Columns)
                    {
                        var p = tExisted.Columns.Find(el => el.Name == parameter.Name);
                        if (p == null)
                        {
                            continue;
                        }
                        parameter.EnumName   = p.EnumName;
                        parameter.EnumValues = p.EnumValues;
                    }
                    tt.Add(t);
                }
                //CRUD用のストアドをDBに追加
                ss.AddRange(this.AddStoredProcedure(t));
                this.OnProcessProgress(new ProcessProgressEventArgs(t.Name, i / totalCount));
            }
            //スキーマファイルに追加
            this.AddOrReplace(this.SchemaData.Tables, tt, (item, element) => item.Name == element.Name);
            this.AddOrReplace(this.SchemaData.StoredProcedures, ss, (item, element) => item.Name == element.Name);
            this.SchemaData.LastExecuteTimeOfImportTable = DateTime.Now;
        }