internal void AddList2ListListDescriptor (List <ListDescriptor> ListDescriptorsList, Dictionary <Guid, ListDescriptor> listsDictionary, PRColumn[] commonColumns) { try { if (listsDictionary.ContainsKey(this.ListGuid) || this.IsProxy || !this.Checked) { return; } if (m_recursive) { throw new ApplicationException(); //TODO } m_recursive = true; UniqueColumns _columns = new UniqueColumns(CreateColumnDescriptors(commonColumns, commonColumns, ListDescriptorsList, listsDictionary)); ListDescriptor _ListDescriptor = new ListDescriptor(this.Name); listsDictionary.Add(this.ListGuid, _ListDescriptor); foreach (PRContentType _clx in ContentType) { _columns.AddRange(CreateColumnDescriptors(_clx.Column, commonColumns, ListDescriptorsList, listsDictionary)); } _ListDescriptor.Columns = _columns.ToArray(); ListDescriptorsList.Add(_ListDescriptor); } finally { m_recursive = false; } }
/// <summary> /// /// </summary> protected void BuildMultipleColumnUnique() { ScriptBuilder.AppendLine($"ALTER TABLE {Table.GetPgSqlName()}"); ScriptBuilder.Append($"ADD CONSTRAINT {UniqueName} UNIQUE ("); foreach (var column in UniqueColumns) { ScriptBuilder.Append(column.GetPgSqlName()); ScriptBuilder.AppendIf(UniqueColumns.IsNotLast(column), " ,"); } ScriptBuilder.Append(");"); }
/// <summary> /// /// </summary> protected override void InternalBuildCommandText() { ScriptBuilder = new StringBuilder(); ScriptBuilder.AppendLine($"ALTER TABLE {Table.GetSqlName()}"); ScriptBuilder.Append($"ADD CONSTRAINT {UniqueName} UNIQUE ("); foreach (var column in UniqueColumns) { ScriptBuilder.Append(column.GetSqlName()); ScriptBuilder.AppendIf(UniqueColumns.IsNotLast(column), " ,"); } ScriptBuilder.Append(");"); }