スポンサーリンク
スポンサーリンク

EFCoreで実行したストアドのSelect結果が0件になるバグ

.NET CoreASP.NET CoreC#EF CoreSQL ServerTransact-SQLWindows

ASP.NET Core + Entity Framework Core の組み合わせで、ストアドプロシージャ内でSelectした結果が0件になるというバグに遭遇しました 。
実行するSQL文を、FromSql()実行前に生成しておくと解消する。

 

ストアドプロシージャ

 

C#

// 実行結果:0件

// 実行結果:0件

// 実行結果:100件

// 実行結果:100件

 

ただ、SQL文のパラメータをstringで渡すとSQLインジェクションの問題が発生するので、実質はSqlParameter()を使って渡すやり方しかない。

// 実行結果:100件

 

環境
・Windows 10
・Visual Studio 2017 15.9.11
・ASP.NET Core 2.2
・Entity Framework Core 2.2
・Microsoft SQL Server 2017 (RTM-CU13) 14.0.3048.4 (X64)

 

参考
https://docs.microsoft.com/ja-jp/ef/core/querying/raw-sql

 

コメント

タイトルとURLをコピーしました