返回EFcore中新添加的记录

时间:2016-12-28 05:23:22

标签: c# entity-framework .net-core

我正在使用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或其他东西提供帮助?

1 个答案:

答案 0 :(得分:2)

您可以将Songleaders返回给调用者,或只返回通过SaveChanges()方法返回的整数值。这一切都取决于你的要求。

从控制器,您可以使用CreatedAtRoute方法返回响应。

这是一个很好的教程,你可以阅读。它提到了Rest API的一些HTTP建议。

Building Your First Web API with ASP.NET Core MVC