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メソッドを用意したという感じですね。