GraphDiff を使用して、切り離されたエンティティをデータベースに挿入しようとしています。
それは次のようになります:
public IHttpActionResult Post([FromBody] Foo foo) {
var newFoo = fooBusiness.AddObject(foo);
if (newFoo != null) {
return CreatedAtRoute("GetOperation", new { id = newFoo.Id }, newFoo);
}
return Conflict();
}
そして、私のaddObject
機能は基本的に次のとおりです。
public Foo AddObject(Foo entity)
{
UpdateGraph(entity);
_context.SaveChanges();
return entity;
}
public override void UpdateGraph(Foo entity)
{
DataContext.UpdateGraph(entity, map => map
.AssociatedCollection(e => e.Bars)
.AssociatedEntity(e => e.Baz)
);
}
新しく追加された Foo の ID を取得しようとすると問題が発生し、空 (0) のままになります。
EF はオブジェクトを実際にデータベースに挿入したものに更新すべきではありませんか? 何か足りないのですか?