我正在使用EFCore进行原型设计,并努力将一个好的方法返回到我刚刚添加到实体集合中的对象。
例如:
public Songleader AddSongleader(int congregationId, Songleader songleader)
{
var congregation = _dbContext.Congregations.Include(c => c.Songleaders).FirstOrDefault(c => c.Id == congregationId);
congregation.Songleaders.Add(songleader);
_dbContext.SaveChanges();
//TODO: return the recently-added record...
return null;
}
Congregation
的集合为Songleaders
。但是,一旦我保存了上下文,我就不确定返回新实例的好方法。 Songleader的Id
是在插入数据库时生成的,因此我无法返回传递给方法的对象......
在这种情况下,是否有一个很好的策略可以帮助EF或其他东西提供帮助?
答案 0 :(得分:2)
您可以将Songleaders
返回给调用者,或只返回通过SaveChanges()
方法返回的整数值。这一切都取决于你的要求。
从控制器,您可以使用CreatedAtRoute
方法返回响应。
这是一个很好的教程,你可以阅读。它提到了Rest API的一些HTTP建议。