У меня есть следующие модели:обновление внешнего ключа объекта в EF6
public class DivorceCases
{
[Key]
[Required]
public string case_id { get; set; }
public string archived { get; set; }
public virtual Plaintiff p { get; set; }
}
public class Plaintiff{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public string name { get; set; }
}
Я имею видовую из DivorceCases для редактирования и в контроллере, я использую:
DivorceCases dcold = db.DivorceCase.Where(x => x.case_id == dc.case_id).Include(x => x.p).SingleOrDefault();
dcold.p = dc.p;
db.Entry(dcold).State = EntityState.Modified;
db.SaveChanges();
Когда я обновляю, вместо Чтобы обновить существующую запись в таблице истцов, EF6 вставляет новую запись в таблицу истцов и обновляет ссылку на внешний ключ для этой новой записи в таблице DivorceCases. Что я делаю не так? Как я могу избавиться от этого?
Вы показали все классы? Я думаю, что это может иметь отношение к коду инициализации в конструкторах. –
@GertArnold нет, сэр это не весь класс. На самом деле для моего случая, у меня есть решение, которое я разместил ниже. –