db.Database.SqlQuery 原始数据返回存储过程名称和参数

Posted

技术标签:

【中文标题】db.Database.SqlQuery 原始数据返回存储过程名称和参数【英文标题】:db.Database.SqlQuery raw data returns stored procedure name and parameters 【发布时间】:2015-05-18 20:51:47 【问题描述】:

我有一个存储过程,它返回包含字符串的 1 行和 1 列。

我正在使用 db.Database 中的 SqlQuery 方法来尝试将此方法作为字符串返回。但是,当我检查返回值时,它会返回存储过程的名称和我尝试传递的参数。

var val = db.Database.SqlQuery<string>(string.Format("0 @QuestionnaireID", model.ObjectiveB.StoredProcedure.SpName),
    new SqlParameter("QuestionnaireID", model.ProjectId));

这是返回的内容

我也尝试过使用

.FirstOfDefault()

.ToList()

但仍然没有返回我想要的值,只有存储过程的名称和它的参数。任何帮助都会很棒!

【问题讨论】:

【参考方案1】:

简单的答案是这样的:

var response = Db.Database.SqlQuery<string>("EXEC procName @p1=0, @p2=1, @p3=2", v1, v2, v3);

var strResponse = resp.First();

确保首先检查响应对象是否有错误。

【讨论】:

你确定这在 mysql 中有效吗?我想你需要你说调用 procName()?

以上是关于db.Database.SqlQuery 原始数据返回存储过程名称和参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 `db.Database.SqlQuery<model>` 后如何清除参数

Ef执行Sql查询

EF中使用SQL语句或存储过程

EF框架使用sql语句或存储过程

EF中使用SQL语句或存储过程

在 var 数组中存储两个不同的对象?