0
データベースに複雑な構造を作成しようとしています。私のテーブルの構造は次のとおりです。EF 4.1と2レベルオブジェクトの挿入に失敗する
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);
すべてが動作します。 (Hierテーブルから残りの階層を挿入するトリガーがChildテーブルにあることに注意してください)。
EF4.1でこのようなオブジェクトの複数のレベルを挿入する必要がありますか?何か不足していますか?