我正在尝试返回受更新影响的行的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;
答案 0 :(得分:0)
ExecuteSqlCommand返回受影响的行数,而不是查询本身(see the API docs)返回的任何值。
要获取SQL返回的值,可以下拉至ADO.NET。调用_dbContext.Database.GetDbConnection()
得到一个普通的旧DbConnection,在与您的SQL的连接上创建一个DbCommand,然后在该连接上调用ExecuteScalar()
(如果需要帮助,请参见网络上的许多教程)。