【发布时间】:2015-03-23 16:35:29
【问题描述】:
我有这样的结构
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派生类型吗? -
是的。它来自 DBContext
标签: wpf linq entity-framework runtime-error