postgreSQL使用实体框架返回更新行的ID

时间:2019-07-24 18:44:40

标签: postgresql entity-framework-6 npgsql

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

SELECT json_build_object(
    'endtime', json_agg(
        concat(endtime::timestamp::date, ' ', endtime::timestamp(0)::time )
    ), 
    'starttime', json_agg(
        concat(starttime::timestamp::date, ' ', starttime::timestamp(0)::time )
    ),
    'totaltime', json_agg(
        case when endtime is null
            then starttime::timestamp - NOW()::timestamp
            else starttime::timestamp - endtime::timestamp
        end
    )
)
FROM jobs;

1 个答案:

答案 0 :(得分:0)

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

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