dapperはテーブル名を置き換えることができますか?

c# dapper

質問

私はdapper-dot-netが次のようなクエリでテーブル名を置き換えることができると予想していました。

connection.Query("SELECT * FROM @Table WHERE [Id] = @Id", new {Table = tb, Id = id});

しかし、それはテーブル名を置き換えていないようです。それは期待された限界ですか?

受け入れられた回答

"in"(dapperがいくつかのブードーを提供する)を除いて、dapperは直接的なADO.NETツールであり、クエリを変更しません。したがって、実際の質問は、SQLでテーブル名をパラメータ化できますか?私が知っているすべてのデータベースで:あなたはできません - それは有効ではありません。 Dapperはその問題を解決しようとしません。

多分string.Formatを考えてみてください。

  • SQLインジェクションを防ぐために正規のテーブル名をホワイトリストにする
  • 可能なすべての名前を許可するために、テーブル名の前後に[square brackets]を使用する


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ