お知らせ
2021年5月20日
C# EntityFrameworkのストアドプロシージャ
結構ハマったので、メモ代わりに記載します。
SqlServerに作成したストアドプロシージャが返却するカラムに更新が入ったので、EntityFramework側も更新しようとしたところ、カラム情報が取得できないエラーになりました。
「選択したストアドプロシージャまたは関数からは列が返されません」
一度作成できているので、何故かわからず。。。
調べたところ、「SET FMTONLY OFF」をプロシージャ側に追加することで、取得できました。
・SET FMTONLY
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/set-fmtonly-transact-sql?view=sql-server-ver15
EntityFrameworkでストアドプロシージャから列情報を取得しようとする際に、「SET FMTONLY ON」が呼び出されるみたいですが、「ON」にすると一時テーブルなどが実行されないみたいです。
変更したプロシージャは一時テーブルが追加されたのですが、これが原因だったみたいです。