2016-03-23 15 views
0

SqlParameterで文字列のリストを渡す方法はありますか?10人の著者がいて、それらによって発行された書籍を探したいと思っています。私は(新しいSqlParameter)で10個のパラメータを別々に作ることができます。しかし、単にリストを渡して結果を得る方法はありますか?DocumentDBでパラメータ化されたクエリの文字列リストを渡す

IQueryable<Book> queryable = client.CreateDocumentQuery<Book>(collectionSelfLink, 
      new SqlQuerySpec 
      { 
       QueryText = "SELECT * FROM books b WHERE (b.Author.Name = @name)", 
       Parameters = new SqlParameterCollection() 
       { 
         new SqlParameter("@name", "Herman Melville") 
       } 
      }); 

答えて

0

私はより多くの情報のためthis linkを参照してください、あなたが探していることはSQL INキーワードだと思います。

使用例:

SELECT * 
FROM books 
WHERE books.Author.Name IN ('Helena Petrovna Blavatsky', 
'Hermes Trismegistus', 'Heinrich Cornelius Agrippa') 
+0

でき、この事「『ヘレナペトローヴナブラバツキー』、 『ヘルメス・トリスメギストス』、 『ハインリヒ・コルネリウス・アグリッパ』」、パラメータのパラメータとして渡すことが私は避けるようにしようとしていますので、 SQLインジェクション私は、パラメータで文字列のリストを渡したいと思いますか? –

+0

@himanshukaushal DocumentDB Linq Provider AFAIKでは、SQLの 'IN'キーワードはまだサポートされていません。http://stackoverflow.com/questions/30870123/documentdb-in-keyword-with-linqを参照してください。 'IN'キーワードをサポートするまでの回避策は、上記のようにSQLクエリを実行することです。' String.Join( "、" authorsArray) 'メソッドを使用してコンマで区切られた配列要素のリストを渡すことができます。 –

関連する問題