我正在使用实体框架。我创建了一个名为 Customer 的实体对象并添加了我的存储过程。
我的存储过程包含另外两个存储过程,它们在输出参数中返回一些字符串。我将两个存储过程的输出参数值连接到主存储过程中。
主存储过程也在输出参数中返回结果字符串。
我还为主存储过程创建了一个函数导入以返回连接的字符串。
当我运行我的应用程序时,我得到“存储数据提供程序返回的数据读取器没有足够的列用于请求的查询。”
我在第一个和第二个过程中没有选择语句。让我知道如何返回主存储过程的输出参数值。
在下面找到更多信息。
Create Procedure MainProcedure
@Id int,
@MainResult nvarchar(max) output
AS
Begin
declare @firstResult nvarchar(max)
declare @secondResult nVarchar(max)
declare @MainResult nVarchar(max)
Exec FirstSP @Id,@firstResult Output
Exec SecondSP @Id,@secondResult Output
Set @MainResult=@firstResult+@secondResult
End
实体代码看起来像
System.Data.Objects.ObjectResult<string> resultList = null;
var OutputParamter =new ObjectParameter("MainResult",typeof(string));
resultList = ent.MainProcedure(ID, OutputParamter);