2016-10-09 8 views
3

は、以下のコードを考えてみましょう:QueryメソッドにCommandTypeを追加するのはなぜですか?

public List<Author> Read() 
    { 
     using (IDbConnection db = new SqlConnection 
      (ConfigurationManager.ConnectionStrings["AdventureWorks"].ConnectionString)) 
      { 
      string readSp = "GetAllAuthors"; 
      return db.Query<Author>(readSp,commandType: CommandType.StoredProcedure).ToList(); 
      } 
    } 

例は見返りにcommandType: CommandType.StoredProcedureを追加しますなぜ?

アンチSQL注入用ですか? http://www.infoworld.com/article/3025784/application-development/how-to-work-with-dapper-in-c.html

答えて

1

はそれがあるのStoredProcedureクエリを伝えるために:

私はここに例を取得します。 このMSDNのドキュメントCommandType EnumarationおよびSQLCommand CommandType Propertyもご覧ください。

+0

私はそれがストアドプロシージャを使用するようにDapperに指示するのは分かっていますが、どのような利点がありますか? –

+1

これは、CommandDefinitionの新しいインスタンスを作成し、その後、CommandTypeをIDbCommandに渡してクエリを実行するために使用されます。基本的には、クエリの実行方法を決定するために使用されました。 – zer09

+0

CommandTypeを削除した場合、唯一の変更はクエリが異なる方法で実行されることです。 CommandTypeを削除するのはまだ安全ですか? –

関連する問題