Я пытаюсь сделать простую вставку базы данных только для одной таблицы, вставка и соединения работают отлично. Проблема возникает только тогда, когда возникают исключения для ввода плохих данных.Вложенные транзакции EF6 не поддерживаются
Вот мой код: (используя MySql и EF6)
using (MaintenanceDB db = new MaintenanceDB())
{
try
{
employee employee = new employee
{
ID = idTBA.textBox.Text,
EName = enTBA.textBox.Text,
AName = anTBA.textBox.Text,
CareerCode = careerCodeCBA.comboBox.SelectedItem.ToString(),
Specialization = specTBA.textBox.Text,
Mobile = mobileTBA.textBox.Text,
Telephone = teleTBA.textBox.Text,
Email = emailTBA.textBox.Text
};
db.employees.Add(employee);
db.SaveChanges();
}
catch (DbUpdateException exception)
{
MessageBox.Show(exception.InnerException.InnerException.Message);
}
catch (EntityException exception)
{
MessageBox.Show(exception.InnerException.Message);
}
}
так, если данные введены правильно все гладко и хорошо, но если бы я поступил дубликат ID, например, в первый раз, это будет первым catch block и скажите мне, что есть дубликат, на данный момент что-то не так, кажется, что соединение здесь не закрыто (несмотря на то, что вы используете finally и dispose on db), в следующий раз, когда я нажму кнопку сохранения, вы получите сообщение об ошибке «Вложенные транзакции не поддерживаются ", а затем db закрывается, и я могу ввести новые данные!
Я попытался открытие соединения вручную или начать транзакцию и закрыть его вручную, так как я нашел в нескольких постах здесь, но ничего, кажется, решить проблему
Действительно. См. Также здесь: https://stackoverflow.com/questions/26320679/asp-net-web-forms-and-mysql-entity-framework-nested-transactions-are-not-suppo/29265962#29265962 – AronVanAmmers