//добавление новых атрибутов сразу в бд
 private void AddAttribute_Click(object sender, EventArgs e)
 {
     //Проверка корректности заполнения информационных полей
     if (AtNameTextBox.TextLength == 0 || TypeComboBox.Text == "" || TypeAttribute.Text == "")
     {
         MessageBox.Show("Нельзя добавить атрибут. Пожалуйста, введите его название, описание (необязательно), тип данных и тип атрибута.", "Ошибка!");
     }
     else
     {
         bool flag = false;
         foreach (Attribute at in cont.AttributeSet)
         {
             if (at.Entity.Name == comboBoxChangeEntity.Text)
             {
                 if (at.Name == AtNameTextBox.Text)
                 {
                     flag = true;
                 }
             }
         }
         if (flag == true)
         {
             MessageBox.Show("Данная сущность уже имеет атрибут с таким именем. Пожалуйста, придумайте другое название.", "Ошибка!");
             AtNameTextBox.Clear();
             textBoxDescriptio.Clear();
             TypeComboBox.Text  = "";
             TypeAttribute.Text = "";
         }
         else //Добавление нового
         {
             Attribute at = new Attribute();
             at.Name          = AtNameTextBox.Text;
             at.Description   = textBoxDescriptio.Text;
             at.Type          = TypeComboBox.Text;
             at.Specification = TypeAttribute.Text;
             ent.Attributes.Add(at);
             cont.SaveChanges();
             int k = 0;
             foreach (Attribute at1 in ent.Attributes)
             {
                 if (at1.Entity == ent)
                 {
                     dataGVChange.Rows.Add();
                     dataGVChange.Rows[k].Cells[0].Value = at1.Name;
                     dataGVChange.Rows[k].Cells[1].Value = at1.Description;
                     dataGVChange.Rows[k].Cells[2].Value = at1.Type;
                     dataGVChange.Rows[k].Cells[3].Value = at1.Specification;
                     k++;
                 }
             }
         }
         AtNameTextBox.Clear();
         textBoxDescriptio.Clear();
         TypeComboBox.Text  = "";
         TypeAttribute.Text = "";
     }
 }
        //удаление атрибутов сразу из бд
        private void DeleteAttribute_Click(object sender, EventArgs e)
        {
            AtNameTextBox.Clear();
            textBoxDescriptio.Clear();
            TypeComboBox.Text = "";

            if (dataGVChange.SelectedRows.Count > 0)
            {
                if (MessageBox.Show("Вы действительно хотите удалить атрибут?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    int    ind = dataGVChange.SelectedCells[0].RowIndex;
                    string del = dataGVChange.Rows[ind].Cells[0].Value.ToString();
                    foreach (Attribute a in ent.Attributes)
                    {
                        if (a.Name == del)
                        {
                            a1 = a;
                            break;
                        }
                    }
                    //Удаление значений атрибутов
                    foreach (AttributeValue atv in cont.AttributeValueSet)
                    {
                        if (atv.Attribute == a1)
                        {
                            cont.AttributeValueSet.Remove(atv);
                        }
                    }
                    //Удаление атрибута
                    cont.AttributeSet.Remove(a1);
                    cont.SaveChanges();
                    int k = 0;
                    foreach (Attribute at1 in ent.Attributes)
                    {
                        if (at1.Entity == ent)
                        {
                            dataGVChange.Rows.Add();
                            dataGVChange.Rows[k].Cells[0].Value = at1.Name;
                            dataGVChange.Rows[k].Cells[1].Value = at1.Description;
                            dataGVChange.Rows[k].Cells[2].Value = at1.Type;
                            dataGVChange.Rows[k].Cells[3].Value = at1.Specification;
                            k++;
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Для удаления тура выберите тур из списка", "Ошибка!");
            }
        }
        private void butChange_1_Click(object sender, EventArgs e)
        {
            //Проверка корректности заполнения информационных полей
            if (AtNameTextBox.TextLength == 0 || TypeComboBox.Text == "" || TypeAttribute.Text == "")
            {
                MessageBox.Show("Нельзя изменить атрибут. Пожалуйста, введите его название, описание (необязательно), тип данных и тип атрибута.", "Ошибка!");
            }
            else
            {
                bool flag = false;
                foreach (Attribute at in cont.AttributeSet)
                {
                    if (at.Entity.Name == comboBoxChangeEntity.Text)
                    {
                        if (at.Name == AtNameTextBox.Text && at.Id != change_at.Id)
                        {
                            flag = true;
                        }
                    }
                }
                if (flag == true)
                {
                    MessageBox.Show("Данная сущность уже имеет атрибут с таким именем. Пожалуйста, придумайте другое название.", "Ошибка!");
                }
                else //Добавление измененного
                {
                    //Добавление изменненного атрибута в массив
                    change_at.Name          = AtNameTextBox.Text;
                    change_at.Description   = textBoxDescriptio.Text;
                    change_at.Type          = TypeComboBox.Text;
                    change_at.Specification = TypeAttribute.Text;
                    cont.SaveChanges();

                    dataGVChange.Rows.Add(change_at.Name, change_at.Description, change_at.Type, change_at.Specification);
                    AtNameTextBox.Clear();
                    textBoxDescriptio.Clear();
                    TypeComboBox.Text  = "";
                    TypeAttribute.Text = "";

                    AddAttribute.Enabled    = true;
                    DeleteAttribute.Enabled = true;
                    butChange_1.Enabled     = false;
                    ChangeAttr.Enabled      = true;
                    CancelButton.Enabled    = true;
                }
            }
        }
 private void AddAttribute_Click(object sender, EventArgs e)
 {                                                                                             //добавление атрибутов к сущности
     if (AtNameTextBox.TextLength == 0 || TypeComboBox.Text == "" || TypeAttribute.Text == "") //проверка введенных значений для названия, типа данных и спецификации
     {
         //данные введены некорректно или неправильно
         MessageBox.Show("Нельзя добавить атрибут. Пожалуйста, введите его название, описание (необязательно), тип данных и тип атрибута.", "Ошибка!");
         AtNameTextBox.Clear();
         textBoxDescriptio.Clear();
         TypeComboBox.Text  = "";
         TypeAttribute.Text = "";
     }
     else
     {                                               //все верно
         bool flag = false;
         foreach (Attribute at in cont.AttributeSet) //обход атрибутов
         {
             if (at.Entity.Name == comboBox1.Text)
             {
                 if (at.Name == AtNameTextBox.Text)  //проверка названий текущих атрибутов
                 {
                     flag = true;
                 }
             }
         }
         if (flag == true)   //атрибут с таким названием уже есть
         {
             MessageBox.Show("Данная сущность уже имеет атрибут с таким именем. Пожалуйста, придумайте другое название.", "Ошибка!");
             AtNameTextBox.Clear();
             textBoxDescriptio.Clear();
             TypeComboBox.Text  = "";
             TypeAttribute.Text = "";
         }
         else
         {   //таких атрибутов нет
             string name   = AtNameTextBox.Text;
             string descr  = textBoxDescriptio.Text;
             string type   = TypeComboBox.Text;
             string typeAt = TypeAttribute.Text;
             dataGridViewATT.Rows.Add(name, descr, type, typeAt);    //перенос данных в таблицу атрибутов
             AtNameTextBox.Clear();
             textBoxDescriptio.Clear();
             TypeComboBox.Text  = "";
             TypeAttribute.Text = "";
         }
     }
 }
 //удаление атрибутов из таблицы атрибутов
 private void DeleteAttribute_Click(object sender, EventArgs e)
 {
     AtNameTextBox.Clear();
     textBoxDescriptio.Clear();
     TypeComboBox.Text = "";
     try
     {
         int ind = dataGridViewATT.SelectedCells[0].RowIndex;  //Индекс строки
         dataGridViewATT.Rows.RemoveAt(ind);
         for (int k = 0; k < dataGridViewATT.Rows.Count; k++)  //Проверка заполнения данной строки
         {
             dataGridViewATT.Rows[k].HeaderCell.Value = (k + 1).ToString();
         }
     }
     catch
     {
         MessageBox.Show("Нельзя удалить строку.");  //Если строка пуста
     }
 }