我做了一个像这样的动态存储过程
CREATE PROCEDURE [dbo].[MyProcedure]
@pSelect nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL nvarchar(max)
SET @SQL = 'select ' + @pSelect + ' from tabel1';
EXEC (@SQL)
END
在更新我的实体数据模型时,在 context.cs 中,上述存储过程的形式为
virtual int MyProcedure(string pSelect)
{
var pSelectParameter = pSelect != null ?
new ObjectParameter("pSelect", pSelect) :
new ObjectParameter("pSelect", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("MyProcedure", pSelectParameter);
}
从 C# 代码调用存储过程
var result = myDataModel.MyProcedure("Select * From table1").tolist();
上面的代码显示错误,因为 MyProcedure 正在返回一个整数返回类型
,所以我如何根据我传递给它的 tje 选择查询设置存储过程的返回类型
如何修改我的存储过程,使其返回类型是任何特定的表类型