public UniqueIndexTreeNode(ProjectSchemaTreeNode parent, UniqueIndexMapping uniqueIndexMapping)
            : base(parent)
        {
            this.UniqueIndexMapping = uniqueIndexMapping;

            Initialize();
        }
예제 #2
0
        public UniqueIndexTreeNode(ProjectSchemaTreeNode parent, UniqueIndexMapping uniqueIndexMapping)
            : base(parent)
        {
            this.UniqueIndexMapping = uniqueIndexMapping;

            Initialize();
        }
예제 #3
0
        private void RefreshUniqueIndices(Project project, Connection connection, ref List <string> errors)
        {
            DataTable          dataTable = GetUniqueIndices(project, connection);
            UniqueIndexMapping currentUniqueIndexMapping = null;
            var duplicates = FindDuplicates(dataTable, QueryConstants.Index.Name, QueryConstants.TableOrView.Name, QueryConstants.Column.Name);

            if (duplicates.Any())
            {
                errors.Add(FormatDuplicates(duplicates));
                return;
            }

            foreach (DataRow dr in dataTable.Rows)
            {
                string        name;
                string        schemaName;
                string        tableName;
                string        columnName;
                ColumnMapping cm = null;

                ExtractUniqueIndexInfo(dr, out name, out schemaName, out tableName, out columnName);
                cm = project.FindTableMapping(connection.Name, schemaName, tableName).FindColumnMapping(columnName);

                if (currentUniqueIndexMapping == null || !currentUniqueIndexMapping.UniqueIndexName.Equals(name))
                {
                    currentUniqueIndexMapping = cm.TableMapping.FindUniqueIndexMapping(name);

                    if (currentUniqueIndexMapping == null)
                    {
                        currentUniqueIndexMapping = new UniqueIndexMapping(name, null, null);
                        cm.TableMapping.UniqueIndexMappings.Add(currentUniqueIndexMapping);
                    }
                }

                if (!currentUniqueIndexMapping.ColumnMappings.Contains(cm))
                {
                    currentUniqueIndexMapping.ColumnMappings.Add(cm);
                }
            }

            RemoveNonExistantUniqueIndices(project, connection, dataTable);
        }
        public UniqueIndexTreeNode(UniqueIndexMapping uniqueIndexMapping)
        {
            _uniqueIndexMapping = uniqueIndexMapping;

            Initialize();
        }
예제 #5
0
        public UniqueIndexOptions(UniqueIndexMapping UniqueIndexMapping)
        {
            InitializeComponent();

            this.UniqueIndexMapping = UniqueIndexMapping;
        }
        public UniqueIndexOptions(UniqueIndexMapping UniqueIndexMapping)
        {
            InitializeComponent();

            this.UniqueIndexMapping = UniqueIndexMapping;
        }
예제 #7
0
        public UniqueIndexTreeNode(UniqueIndexMapping uniqueIndexMapping)
        {
            _uniqueIndexMapping = uniqueIndexMapping;

            Initialize();
        }