2016-03-23 19 views
0

SqlParametre'de dizelerin bir listesini iletmenin bir yolu var mı, 10 yazarım olduğunu ve yayınladıkları kitapları bulmak istediğimi varsayalım. (Yeni SqlParameter) 'da ayrı ayrı 10 parametre yapabileceğimi biliyorum. Ama sadece bir listeyi geçmek ve sonuçları almak için bir yol var.DocumentDB'de Parametreli Sorguda Parametre Olarak Dizelerin Geçiş Listesi

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") 
       } 
      }); 

cevap

0

ne aradığınız daha fazla bilgi için this link bkz SQL IN kelime olduğunu düşünüyorum.

Kullanım örneği:

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

Can bu şey " 'Helena Petrovna Blavatsky', 'Hermes Trismegistus', 'Heinrich Cornelius Agrippa'", Parametreler parametre olarak geçirilebilir i önlemek için çalışıyorum çünkü sql enjeksiyonu Parametrelerdeki dizelerin bir listesini geçmek istiyorum, olabilir mi? –

+0

@himanshukaushal SQL 'IN' Anahtar sözcüğü henüz DocumentDB Linq Sağlayıcısı AFAIK'de desteklenmiyor, bkz. Http://stackoverflow.com/questions/30870123/documentdb-in-keyword-with-linq. "IN" Anahtar sözcüklerini destekleyene kadar bir geçici çözüm, SQL sorgusunu yukarıdaki gibi çalıştırır ve "String.Join (", ", authorsArray)" yöntemini kullanarak virgülle ayrılmış dizi öğelerinin bir listesini iletebilirsiniz. –

İlgili konular