Sql 使用实体框架调用存储过程,实体框架返回不带列名的单个字符串

Sql 使用实体框架调用存储过程,实体框架返回不带列名的单个字符串,sql,sql-server,entity-framework,stored-procedures,Sql,Sql Server,Entity Framework,Stored Procedures,我有一个存储过程,它根据一些逻辑返回一个日期字符串,没有列名称 我的C代码使用Entry框架 public string GetCurrTimeForUser(string userId) { using (var context = new RMTest()) { var user_id = new SqlParameter("@USER_ID", userId); var result = conte

我有一个存储过程,它根据一些逻辑返回一个日期字符串,没有列名称

我的C代码使用Entry框架

public string GetCurrTimeForUser(string userId)
    {

        using (var context = new RMTest())
        {
            var user_id = new SqlParameter("@USER_ID", userId);

            var result = context.Database.SqlQuery<string>("EXEC PROC_GET_UTC_DATE",user_id);
            return result.ToString();
        }
    }
我得到的输出是EXEC PROC_GET_UTC_DATE


我的方法有什么问题?

调用存储过程时:

var result = context.Database.SqlQuery("EXEC PROC_GET_UTC_DATE '" + user_id + "'")

这几乎是这样的

您的存储过程没有select语句中的列名否,很遗憾,我无法更改存储过程。为什么您需要一个列?因为它只返回一列结果/我只想用c代码得到相同的结果。我无法获取。我不知道此RMTest的内容,但请尝试删除。确保您使用的是commandText存储过程希望这一个RMTest是okayAnd SQL Injection?您应该真正使用参数化查询方法,而不是将SQL语句连接在一起-这只要求SQL注入发生!永远不要这样做!