c# - 返回 EFcore 中新增的记录

标签 c# entity-framework .net-core

我正在使用 EFCore 做一个原型(prototype),并努力寻找一种返回我刚刚添加到实体集合中的对象的好方法。

例如:

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 .但是,一旦我保存了上下文,我就不确定返回新实例的好方法。 Id Songleader 是在插入数据库时​​生成的,所以我不能只返回传递给方法的对象......

在这种情况下,是否有一个很好的策略或 EF 中的某些内容来提供帮助?

最佳答案

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

从 Controller 您可以使用 CreatedAtRoute返回响应的方法。

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

Building Your First Web API with ASP.NET Core MVC

关于c# - 返回 EFcore 中新增的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41355818/

相关文章:

c# - 无法将 json 反序列化为 ASP.Net MVC 中的抽象类

c# - 重载通用扩展方法

c# - 如何在 Entity Framework 中基于旧实体创建新实体?

c# - 在 OData 中评估 IQueryable 后如何填充模型中的某些属性?

c# - 为什么我在从 .net core rc1 迁移到 rc2 时遇到这种不兼容问题

docker - VS2017 : Adding environment variables to docker container for debugging

c# - 是否可以从另一个类库中的静态类获取 ConnectionString?

c# - 如何在不启动任务的情况下构建任务?

c# - 如何使用最小起订量模拟 Controller.User

.net - Entity Framework 中的可空实体投影