postgreSQL 使用 entity framework 返回更新行的 ID

postgreSQL returning Id's of updated rows using entity framework

我正在尝试 return 受更新影响的行的 ID。我正在使用实体框架 ExecuteSqlCommand 和 postgreSQL 数据库。当我执行命令时,我得到的 return 值是 -1。我做错了什么?

var updatedIds = _dbContext.Database.ExecuteSqlCommand(@"UPDATE dbo.""PrincipleCategoryObjectives"" SET ""IsRequired""=" + requiredDto.IsRequired + @" WHERE ""AuditPrincipleId""=" + requiredDto.PrincipleId + @" RETURNING ""Id""");

ExecuteSqlCommand returns 受影响的行数,而不是查询本身返回的任何值 (see the API docs)。

要获取从 SQL 返回的值,您可以下拉至 ADO.NET。调用 _dbContext.Database.GetDbConnection() 以获得一个普通的旧 DbConnection,在该连接上与您的 SQL 创建一个 DbCommand 并在其上调用 ExecuteScalar()(如果您需要帮助,请参阅网络上的许多教程)。