0
我想在我的數據庫中創建一個複雜的結構。我的表結構是:EF 4.1和兩級對象插入失敗
Parent
ID
Hier
ID
ParentHierID
Desc
Child
ID
ParentID
HierID
Sibling
ID
ChildID
SiblingTypeID
SiblingType
ID
Desc
下面是我在做什麼:
_objectSet = _context.CreateObjectSet<Parent>();
Parent p = Mapper.Map(ParentView, Parent>(parentView);
Child c;
Sibling s;
foreach (var hier in TopLevels)
{
c = new Child();
c.HierId = hier.ID;
..set some other fields from foo...
p.Childs.Add(c);
s = new Sibling();
s.SiblingTypeID = 1;
c.Siblings.Add(s);
}
_objectSet.AddObject(p);
_context.SaveChanges(SaveOptions.None);
這將導致一個例外:
The INSERT statement conflicted with the FOREIGN KEY constraint
"Sibling_Child_FK". The conflict occurred in database "DB",
table "Child", column 'ID'.
The statement has been terminated.
如果我沒有創建的兄弟姐妹,並刪除c.Siblings.Add(s);
然後一切正常。 (請注意,Child表上有一個觸發器,用於從Hier表中插入其餘層次結構)。
EF4.1應該能夠處理像這樣插入多層次的對象嗎?我錯過了什麼嗎?