EF Core - FromSqlとFromSqlInterpolatedは同じ
.NET 7.0から生SQLを実行するFromSql
メソッドが追加されました。
既存のFromSqlInterpolated
メソッドやFromSqlRaw
メソッドとの違いが気になったので調べたみたところ、FromSql
メソッドとFromSqlInterpolated
メソッドは同じ機能のようです。
メソッド | SQLインジェクション攻撃に対して |
---|---|
FromSql |
安全(パラメーター化される) |
FromSqlInterpolated |
安全(パラメーター化される) |
FromSqlRaw |
安全ではない(パラメーター化されない) |
追加された理由を調べてみるとイシューが見つかりました。
Add FromSql and ExecuteSql accepting FormattableString · Issue #28609 · dotnet/efcore
生SQLを実行するデフォルトのメソッドとしてより選択されやすいように、サフィックスがないFromSql
メソッドを用意したという感じですね。