Всем привет, я пока новичек с Entity Framework, поэтому разные вопросы появляются то там то там
Опишу сначала модель:
| Код | public class Parent { public int Id { get; set; } public DateTime date { get; set; } public string Name { get; set; }
public IList<Child> Children { get; set; } }
public class Child { public ind Id { get; set; } public int ProgramId { get; set; } public virtual Program Program { get; set; } /// просто модель справочник
public double summa { get; set; }
public int ParentId { get; set; } public virtual Parent Parent { get; set; } }
|
так вот, контроллеры создавал с использованием Скайфол, так что все ActionResult и View создались автоматом, сохранение нового объекта Parent с коллекцией объектов Child в базу, проходит нормально, а вот сохранение изменений валится
вот код контроллера:
| Код | public ActionResult Create(Parent parent, String param) { IList<Child> list = JSON.Deserialize<IList<Child>>(param);
parent.Children = list;
if (ModelState.IsValid) { db.Parents.Add(parent); db.SaveChanges(); }
return this.Direct(); }
public ActionResult Edit(Parent parent, String param) { if (ModelState.IsValid) { IList<Child> _list = JSON.Deserialize<IList<Child>>(param);
parent.Children = _list;
db.Entry(parent).State = EntityState.Modified; db.SaveChanges(); } return this.Direct(); }
|
так вот на строчке db.Entry(parent).State = EntityState.Modified; и вылетает
вот текст ошибки:
A referential integrity constraint violation occurred: The property values that define the referential constraints are not consistent between principal and dependent objects in the relationship. |