Эта ошибка вызывается много, но я не могу найти решение. Я новичок в Entity Framework, и в моем первом подходе я получил эту ошибку.
Это то, что у меня есть. У меня есть класс компании и класс веток. Оба класса имеют свой собственный репозиторий. У компании есть один филиал, в то время как один филиал может иметь несколько компаний.
В моем графическом интерфейсе я заполняю комбо с объектами Branch, которые я получаю из своего BranchRepository:
public IList<Branch> GetAllBranches()
{
var query = _context.Branches;
IList<Branch> branches = query.ToList();
return branches;
}
Это результат источника данных ответвления ветки.
Когда я хочу сохранить компанию, я делаю что-то вроде этого:
company.VisitorAddress = txtVisitAddress.Text;
company.City = txtCity.Text;
company.CompanyName = txtCompany.Text;
company.PhoneNumber = txtPhoneNumber.Text;
company.ZipCode = txtZipcode.Text;
company.Branch = ((Branch)cmbBranches.SelectedItem);
company.Website = txtWebsite.Text;
Затем я звоню в репозиторий моей компании, чтобы сохранить свою компанию. Вот как выглядит метод сохранения:
public bool Save(Company company)
{
_context.AddToCompanies(company); // <-- This is where the error is thrown.
_context.SaveChanges();
return true;
}
Когда вызывается метод сохранения, я получаю сообщение об ошибке "Объект сущности не может ссылаться на несколько экземпляров IEntityChangeTracker".
Ясно, что я делаю что-то неправильно, но что?