Когда я пытаюсь изменить данные в базе данных, выдается исключение. Я новичок в Entity и не понимаю, как это исправить. Я использую MS SQL Server. с использованием кода сначала и EntityFramework 6, WFA.
Метод
private void editCircularToolStripMenuItem_Click(object sender, EventArgs e)
{
Circular c = DG_C.CurrentRow.DataBoundItem as Circular;
MyContext context = new MyContext();
Red_Circular red = context.Reds.SingleOrDefault(r => r.Circular__ID == c.ID_Circular);
AddCircular add = new AddCircular();
add.tbsur.Text = c.Surname;
add.tbname.Text = c.Name;
add.cbeye.Text = c.EyeColor; // adding values to the textboxes on anoter forms
add.cbhair.Text = c.HairColor; // добавление значение в тексбоксы другой формы
if (red != null)// if found если найдено
{
add.tbchange.Text = red.charge;
DialogResult result = add.ShowDialog(this);
if (result == DialogResult.Cancel)
{
c.Surname = add.tbsur.Text;
c.Name = add.tbname.Text;
c.EyeColor = add.cbeye.Text;
c.HairColor = add.cbhair.Text; // adding new values добавления новых значений
c.Activity = true;
red.charge = add.tbchange.Text;
red.info = add.tbinfo.Text;
context.Entry(c).State = EntityState.Modified; // error ошибка
//An entity object cannot be referenced by multiple instances of IEntityChangeTracker
context.Entry(red).State = EntityState.Modified;// if you delete
//the line abode then this line works
context.SaveChanges();
}
}
Контекст класса
public class MyContext : DbContext
{
public MyContext() : base("DefaultConnection")
{
}
public DbSet<Department> Departments { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<Resualt_of_search> Resualts { get; set; }
public DbSet<Employee> Employees { get; set; }
public DbSet<Circular> Circulars { get; set; }
public DbSet<Red_Circular> Reds { get; set; }
public DbSet<Blue_Circular> Blues { get; set; }
public DbSet<Black_Circular> Blacks { get; set; }
public DbSet<Yellow_circular> Yellows { get; set; }
public DbSet<Green_Circular> Greens { get; set; }
}