C# EntityFrameworkのストアドプロシージャ更新 | 株式会社アースリンク

Engineer Blog開発者ブログ

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」にすると一時テーブルなどが実行されないみたいです。

変更したプロシージャは一時テーブルが追加されたのですが、これが原因だったみたいです。

Contact
お問い合わせ

電話番号0120 - 889 - 236
受付時間:平日 9:00-18:00