我正在尝试使用 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 不应该将对象更新为它实际插入数据库的内容吗?我错过了什么吗?