У меня есть структура, как этоОшибка при сохранении связанных объектов в Entity Framework
DRDLines
:
ID
DrawingRevisionID
DrawingRevision
:
ID
Name
они связаны в один-ко-многим отношения.
В этом примере кода
DRDLine line;
using (var db = new AMPX_DCEntities())
{
line = db.DRDLines.Single(p => p.ID == 1);
System.Console.WriteLine(line.DrawingRevision.ID);
}
using (var db = new AMPX_DCEntities())
{
var id = 12;
line.DrawingRevisionID = id;
}
using (var db = new AMPX_DCEntities())
{
db.Entry(line).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
}
Я получаю эту ошибку
реляционного нарушение ограничения целостности произошло: Значение свойства (ов) 'DrawingRevision.ID' на одном конце отношения не соответствуют значениям свойств 'DRDLine.DrawingRevisionID' на другом конце.
То, что я нашел: это не обновляет отношения в DRDLines
внутри DrawingRevision
отладки я вижу:
line.DrawingRevision.DRDLines[0].ID != line.DrawingRevisionID
Если удалить линию
System.Console.WriteLine(line.DrawingRevision.ID);
или написать это так
System.Console.WriteLine(line.DrawingRevisionID);
все идет без ошибок. Но мне нужна эта линия, которая будет использоваться.
Итак, как я могу это исправить?
БЛАГОДАРЯ
Есть ли 'AMPX_DCEntities' ваш тип' DbContext'? – Richard
Да. Он держится от DBContext –