Azure cosmosdb 在DocumentDB的参数化查询中将字符串列表作为参数传递
是否有一种方法可以在SqlParameter中传递字符串列表,假设我有10位作者,我想查找他们出版的书籍。我知道我可以分别在(新SqlParameter)中创建10个参数。但是有没有一种方法可以传递一个列表并得到结果呢Azure cosmosdb 在DocumentDB的参数化查询中将字符串列表作为参数传递,azure-cosmosdb,parameterized-query,Azure Cosmosdb,Parameterized Query,是否有一种方法可以在SqlParameter中传递字符串列表,假设我有10位作者,我想查找他们出版的书籍。我知道我可以分别在(新SqlParameter)中创建10个参数。但是有没有一种方法可以传递一个列表并得到结果呢 IQueryable<Book> queryable = client.CreateDocumentQuery<Book>(collectionSelfLink, new SqlQuerySpec {
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")
}
});
IQueryable queryable=client.CreateDocumentQuery(collectionSelfLink,
新SqlQuerySpec
{
QueryText=“从书籍b中选择*,其中(b.Author.Name=@Name)”,
参数=新的SqlParameterCollection()
{
新的SqlParameter(“@name”,“Herman Melville”)
}
});
我想您要查找的是关键字中的SQL,有关更多信息,请参阅
用法示例:
SELECT *
FROM books
WHERE books.Author.Name IN ('Helena Petrovna Blavatsky',
'Hermes Trismegistus', 'Heinrich Cornelius Agrippa')
“Helena Petrovna Blavatsky”、“Hermes Trismegistus”、“Heinrich Cornelius Agrippa”这句话能否作为参数中的参数传递,因为我试图避免sql注入,我想在参数中传递字符串列表,这会发生吗?@himanshukaushal在DocumentDB Linq Provider AFAIK中还不支持关键字中的SQL,请参阅。在它们支持
关键字中的之前,一个解决方法是如上所述执行SQL查询,您可以使用String.Join(“,”,authorsArray)
方法传入逗号分隔的数组元素列表。