このような動的ストアドプロシージャを作成しました
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 クエリに従ってストアド プロシージャの戻り値の型を設定するにはどうすればよいですか
戻り型が特定のテーブル型になるようにストアド プロシージャを変更する方法