0

このような動的ストアドプロシージャを作成しました

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

そして、私のentitydatamodelを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 が整数の戻り値の型を返しているため、上記のコードはエラーを表示
しています。渡した select クエリに従ってストアド プロシージャの戻り値の型を設定するにはどうすればよいですか

戻り型が特定のテーブル型になるようにストアド プロシージャを変更する方法

4

2 に答える 2