你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
IDocumentClient.CreateDocumentQuery 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
CreateDocumentQuery(String, FeedOptions) |
已重载。 此方法为 Azure Cosmos DB 服务中的集合下的文档创建查询。 它返回 IOrderedQueryable{Document}。 |
CreateDocumentQuery(Uri, FeedOptions) |
在 Azure Cosmos DB 服务中创建文档查询的方法。 |
CreateDocumentQuery(String, SqlQuerySpec, FeedOptions) |
已重载。 此方法使用具有参数化值的 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{dynamic}。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 SqlQuerySpec。 |
CreateDocumentQuery(String, String, FeedOptions) |
已重载。 此方法使用 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{dynamic}。 |
CreateDocumentQuery(Uri, SqlQuerySpec, FeedOptions) |
在 Azure Cosmos DB 服务中创建文档查询的方法。 |
CreateDocumentQuery(Uri, String, FeedOptions) |
在 Azure Cosmos DB 服务中创建文档查询的方法。 |
CreateDocumentQuery<T>(Uri, SqlQuerySpec, FeedOptions) |
在 Azure Cosmos DB 服务中创建文档查询的方法。 |
CreateDocumentQuery<T>(Uri, String, FeedOptions) |
在 Azure Cosmos DB 服务中创建文档查询的方法。 |
CreateDocumentQuery<T>(String, String, FeedOptions) |
已重载。 此方法使用 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{T}。 |
CreateDocumentQuery<T>(String, SqlQuerySpec, FeedOptions) |
已重载。 此方法使用具有参数化值的 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{T}。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 SqlQuerySpec。 |
CreateDocumentQuery<T>(Uri, FeedOptions) |
在 Azure Cosmos DB 服务中创建文档查询的方法。 |
CreateDocumentQuery<T>(String, FeedOptions) |
已重载。 此方法为 Azure Cosmos DB 服务中的集合下的文档创建查询。 |
CreateDocumentQuery(String, FeedOptions)
已重载。 此方法为 Azure Cosmos DB 服务中的集合下的文档创建查询。 它返回 IOrderedQueryable{Document}。
public System.Linq.IOrderedQueryable<Microsoft.Azure.Documents.Document> CreateDocumentQuery (string collectionLink, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : string * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IOrderedQueryable<Microsoft.Azure.Documents.Document>
Public Function CreateDocumentQuery (collectionLink As String, Optional feedOptions As FeedOptions = Nothing) As IOrderedQueryable(Of Document)
参数
- collectionLink
- String
指向父文档集合的链接。
- feedOptions
- FeedOptions
用于处理查询结果源的选项。 有关详细信息,请参阅 FeedOptions
返回
可以评估查询的 IOrderedQueryable{Document}。
示例
以下示例按 ID 查询文档。
Document document = client.CreateDocumentQuery<Document>(collectionLink)
.Where(d => d.Id == "War and Peace").AsEnumerable().FirstOrDefault();
注解
当查询文档的架构未知或按 ID 查询和替换/删除文档时,应使用此重载。 由于 Document 是 DynamicObject,因此可以动态转换回原始 C# 对象。
另请参阅
适用于
CreateDocumentQuery(Uri, FeedOptions)
在 Azure Cosmos DB 服务中创建文档查询的方法。
public System.Linq.IOrderedQueryable<Microsoft.Azure.Documents.Document> CreateDocumentQuery (Uri documentCollectionUri, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : Uri * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IOrderedQueryable<Microsoft.Azure.Documents.Document>
Public Function CreateDocumentQuery (documentCollectionUri As Uri, Optional feedOptions As FeedOptions = Nothing) As IOrderedQueryable(Of Document)
参数
- documentCollectionUri
- Uri
文档集合的 URI。
- feedOptions
- FeedOptions
(可选) FeedOptions 用于处理查询结果源的 。
返回
查询结果集。
适用于
CreateDocumentQuery(String, SqlQuerySpec, FeedOptions)
已重载。 此方法使用具有参数化值的 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{dynamic}。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 SqlQuerySpec。
public System.Linq.IQueryable<dynamic> CreateDocumentQuery (string collectionLink, Microsoft.Azure.Documents.SqlQuerySpec querySpec, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : string * Microsoft.Azure.Documents.SqlQuerySpec * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<obj>
Public Function CreateDocumentQuery (collectionLink As String, querySpec As SqlQuerySpec, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of Object)
参数
- collectionLink
- String
指向父文档集合的链接。
- querySpec
- SqlQuerySpec
包含 SQL 表达式的 SqlQuerySpec 实例。
- feedOptions
- FeedOptions
用于处理查询结果源的选项。 有关详细信息,请参阅 FeedOptions
返回
可以评估查询的 IQueryable{dynamic> 。
示例
以下示例查询书籍文档。
// SQL querying allows dynamic property access
var query = new SqlQuerySpec(
"SELECT * FROM books b WHERE b.title = @title",
new SqlParameterCollection(new SqlParameter[] { new SqlParameter { Name = "@title", Value = "War and Peace" }}));
dynamic document = client.CreateDocumentQuery<dynamic>(collectionLink, query).AsEnumerable().FirstOrDefault();
注解
有关语法和示例, https://docs.microsoft.com/azure/cosmos-db/sql-query-getting-started/ 请参阅 。
另请参阅
适用于
CreateDocumentQuery(String, String, FeedOptions)
已重载。 此方法使用 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{dynamic}。
public System.Linq.IQueryable<dynamic> CreateDocumentQuery (string collectionLink, string sqlExpression, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : string * string * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<obj>
Public Function CreateDocumentQuery (collectionLink As String, sqlExpression As String, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of Object)
参数
- collectionLink
- String
指向父文档集合的链接。
- sqlExpression
- String
SQL 语句。
- feedOptions
- FeedOptions
用于处理查询结果源的选项。 有关详细信息,请参阅 FeedOptions
返回
可以评估查询的 IQueryable{dynamic> 。
示例
以下示例查询书籍文档。
// SQL querying allows dynamic property access
dynamic document = client.CreateDocumentQuery<dynamic>(collectionLink,
"SELECT * FROM books b WHERE b.title == 'War and Peace'").AsEnumerable().FirstOrDefault();
注解
有关语法和示例, https://docs.microsoft.com/azure/cosmos-db/sql-query-getting-started/ 请参阅 。
另请参阅
适用于
CreateDocumentQuery(Uri, SqlQuerySpec, FeedOptions)
在 Azure Cosmos DB 服务中创建文档查询的方法。
public System.Linq.IQueryable<dynamic> CreateDocumentQuery (Uri documentCollectionUri, Microsoft.Azure.Documents.SqlQuerySpec querySpec, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : Uri * Microsoft.Azure.Documents.SqlQuerySpec * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<obj>
Public Function CreateDocumentQuery (documentCollectionUri As Uri, querySpec As SqlQuerySpec, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of Object)
参数
- documentCollectionUri
- Uri
文档集合的 URI。
- querySpec
- SqlQuerySpec
sql 查询。
- feedOptions
- FeedOptions
(可选) FeedOptions 用于处理查询结果源的 。
返回
查询结果集。
适用于
CreateDocumentQuery(Uri, String, FeedOptions)
在 Azure Cosmos DB 服务中创建文档查询的方法。
public System.Linq.IQueryable<dynamic> CreateDocumentQuery (Uri documentCollectionUri, string sqlExpression, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : Uri * string * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<obj>
Public Function CreateDocumentQuery (documentCollectionUri As Uri, sqlExpression As String, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of Object)
参数
- documentCollectionUri
- Uri
文档集合的 URI。
- sqlExpression
- String
sql 查询。
- feedOptions
- FeedOptions
(可选) FeedOptions 用于处理查询结果源的 。
返回
查询结果集。
适用于
CreateDocumentQuery<T>(Uri, SqlQuerySpec, FeedOptions)
在 Azure Cosmos DB 服务中创建文档查询的方法。
public System.Linq.IQueryable<T> CreateDocumentQuery<T> (Uri documentCollectionUri, Microsoft.Azure.Documents.SqlQuerySpec querySpec, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : Uri * Microsoft.Azure.Documents.SqlQuerySpec * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<'T>
Public Function CreateDocumentQuery(Of T) (documentCollectionUri As Uri, querySpec As SqlQuerySpec, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of T)
类型参数
- T
要查询的对象的类型。
参数
- documentCollectionUri
- Uri
文档集合的 URI。
- querySpec
- SqlQuerySpec
sql 查询。
- feedOptions
- FeedOptions
(可选) FeedOptions 用于处理查询结果源的 。
返回
查询结果集。
适用于
CreateDocumentQuery<T>(Uri, String, FeedOptions)
在 Azure Cosmos DB 服务中创建文档查询的方法。
public System.Linq.IQueryable<T> CreateDocumentQuery<T> (Uri documentCollectionUri, string sqlExpression, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : Uri * string * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<'T>
Public Function CreateDocumentQuery(Of T) (documentCollectionUri As Uri, sqlExpression As String, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of T)
类型参数
- T
要查询的对象的类型。
参数
- documentCollectionUri
- Uri
文档集合的 URI。
- sqlExpression
- String
sql 查询。
- feedOptions
- FeedOptions
(可选) 用于 FeedOptions 处理查询结果源的 。
返回
查询结果集。
适用于
CreateDocumentQuery<T>(String, String, FeedOptions)
已重载。 此方法使用 SQL 语句为 Azure Cosmos DB 数据库中的集合下的文档创建查询。 它返回 IQueryable{T}。
public System.Linq.IQueryable<T> CreateDocumentQuery<T> (string collectionLink, string sqlExpression, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : string * string * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<'T>
Public Function CreateDocumentQuery(Of T) (collectionLink As String, sqlExpression As String, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of T)
类型参数
- T
要查询的对象的类型。
参数
- collectionLink
- String
指向父集合的链接。
- sqlExpression
- String
SQL 语句。
- feedOptions
- FeedOptions
用于处理查询结果源的选项。 有关详细信息,请参阅 FeedOptions
返回
可计算查询的 IQueryable{T}。
示例
以下示例查询一些书籍文档。
public class Book
{
[JsonProperty("title")]
public string Title {get; set;}
public Author Author {get; set;}
public int Price {get; set;}
}
public class Author
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
// Query by the Title property
Book book = client.CreateDocumentQuery<Book>(collectionLink,
"SELECT * FROM books b WHERE b.title = 'War and Peace'").AsEnumerable().FirstOrDefault();
// Query a nested property
Book otherBook = client.CreateDocumentQuery<Book>(collectionLink,
"SELECT * FROM books b WHERE b.Author.FirstName = 'Leo'").AsEnumerable().FirstOrDefault();
// Perform a range query (needs an IndexType.Range on price or FeedOptions.EnableScansInQuery)
foreach (Book matchingBook in client.CreateDocumentQuery<Book>(
collectionLink, "SELECT * FROM books b where b.Price > 1000"))
{
// Iterate through books
}
// Query asychronously. Optionally set FeedOptions.MaxItemCount to control page size
using (var queryable = client.CreateDocumentQuery<Book>(collectionLink,
"SELECT * FROM books b WHERE b.title = 'War and Peace'",
new FeedOptions { MaxItemCount = 10 }).AsDocumentQuery())
{
while (queryable.HasMoreResults)
{
foreach(Book b in await queryable.ExecuteNextAsync<Book>())
{
// Iterate through books
}
}
}
注解
有关语法和示例, https://docs.microsoft.com/azure/cosmos-db/sql-query-getting-started/ 请参阅 。
另请参阅
适用于
CreateDocumentQuery<T>(String, SqlQuerySpec, FeedOptions)
已重载。 此方法使用具有参数化值的 SQL 语句,为 Azure Cosmos DB 数据库中集合下的文档创建查询。 它返回 IQueryable{T}。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 SqlQuerySpec。
public System.Linq.IQueryable<T> CreateDocumentQuery<T> (string collectionLink, Microsoft.Azure.Documents.SqlQuerySpec querySpec, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : string * Microsoft.Azure.Documents.SqlQuerySpec * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IQueryable<'T>
Public Function CreateDocumentQuery(Of T) (collectionLink As String, querySpec As SqlQuerySpec, Optional feedOptions As FeedOptions = Nothing) As IQueryable(Of T)
类型参数
- T
要查询的对象的类型。
参数
- collectionLink
- String
指向父文档集合的链接。
- querySpec
- SqlQuerySpec
包含 SQL 表达式的 SqlQuerySpec 实例。
- feedOptions
- FeedOptions
用于处理查询结果源的选项。 有关详细信息,请参阅 FeedOptions
返回
可计算查询的 IQueryable{T}。
示例
以下示例查询一些书籍文档。
public class Book
{
[JsonProperty("title")]
public string Title {get; set;}
public Author Author {get; set;}
public int Price {get; set;}
}
public class Author
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
// Query using Title
Book book, otherBook;
var query = new SqlQuerySpec(
"SELECT * FROM books b WHERE b.title = @title",
new SqlParameterCollection(new SqlParameter[] { new SqlParameter { Name = "@title", Value = "War and Peace" }}));
book = client.CreateDocumentQuery<Book>(collectionLink, query).AsEnumerable().FirstOrDefault();
// Query a nested property
query = new SqlQuerySpec(
"SELECT * FROM books b WHERE b.Author.FirstName = @firstName",
new SqlParameterCollection(new SqlParameter[] { new SqlParameter { Name = "@firstName", Value = "Leo" }}));
otherBook = client.CreateDocumentQuery<Book>(collectionLink, query).AsEnumerable().FirstOrDefault();
// Perform a range query (needs an IndexType.Range on price or FeedOptions.EnableScansInQuery)
query = new SqlQuerySpec(
"SELECT * FROM books b WHERE b.Price > @minPrice",
new SqlParameterCollection(new SqlParameter[] { new SqlParameter { Name = "@minPrice", Value = 1000 }}));
foreach (Book b in client.CreateDocumentQuery<Book>(
collectionLink, query))
{
// Iterate through books
}
// Query asychronously. Optionally set FeedOptions.MaxItemCount to control page size
query = new SqlQuerySpec(
"SELECT * FROM books b WHERE b.title = @title",
new SqlParameterCollection(new SqlParameter[] { new SqlParameter { Name = "@title", Value = "War and Peace" }}));
using (var queryable = client.CreateDocumentQuery<Book>(collectionLink, query,
new FeedOptions { MaxItemCount = 10 }).AsDocumentQuery())
{
while (queryable.HasMoreResults)
{
foreach(Book b in await queryable.ExecuteNextAsync<Book>())
{
// Iterate through books
}
}
}
注解
有关语法和示例, https://docs.microsoft.com/azure/cosmos-db/sql-query-getting-started/ 请参阅 。
另请参阅
适用于
CreateDocumentQuery<T>(Uri, FeedOptions)
在 Azure Cosmos DB 服务中创建文档查询的方法。
public System.Linq.IOrderedQueryable<T> CreateDocumentQuery<T> (Uri documentCollectionUri, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : Uri * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IOrderedQueryable<'T>
Public Function CreateDocumentQuery(Of T) (documentCollectionUri As Uri, Optional feedOptions As FeedOptions = Nothing) As IOrderedQueryable(Of T)
类型参数
- T
要查询的对象的类型。
参数
- documentCollectionUri
- Uri
父文档集合的 URI。
- feedOptions
- FeedOptions
(可选) 用于 FeedOptions 处理查询结果源的 。
返回
查询结果集。
适用于
CreateDocumentQuery<T>(String, FeedOptions)
已重载。 此方法为 Azure Cosmos DB 服务中的集合下的文档创建查询。
public System.Linq.IOrderedQueryable<T> CreateDocumentQuery<T> (string collectionLink, Microsoft.Azure.Documents.Client.FeedOptions feedOptions = default);
abstract member CreateDocumentQuery : string * Microsoft.Azure.Documents.Client.FeedOptions -> System.Linq.IOrderedQueryable<'T>
Public Function CreateDocumentQuery(Of T) (collectionLink As String, Optional feedOptions As FeedOptions = Nothing) As IOrderedQueryable(Of T)
类型参数
- T
要查询的对象的类型。
参数
- collectionLink
- String
指向父集合资源的链接。
- feedOptions
- FeedOptions
用于处理查询结果源的选项。 有关详细信息,请参阅 FeedOptions
返回
可以计算查询的 IOrderedQueryable{T}。
示例
以下示例查询一些书籍文档。
public class Book
{
[JsonProperty("title")]
public string Title {get; set;}
public Author Author {get; set;}
public int Price {get; set;}
}
public class Author
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
// Query by the Title property
Book book = client.CreateDocumentQuery<Book>(collectionLink).Where(b => b.Title == "War and Peace").AsEnumerable().FirstOrDefault();
// Query a nested property
Book otherBook = client.CreateDocumentQuery<Book>(collectionLink).Where(b => b.Author.FirstName == "Leo").AsEnumerable().FirstOrDefault();
// Perform a range query (needs an IndexType.Range on price or FeedOptions.EnableScansInQuery)
foreach (Book matchingBook in client.CreateDocumentQuery<Book>(collectionLink).Where(b => b.Price > 100))
{
// Iterate through books
}
// Query asychronously. Optionally set FeedOptions.MaxItemCount to control page size
using (var queryable = client.CreateDocumentQuery<Book>(
collectionLink,
new FeedOptions { MaxItemCount = 10 })
.Where(b => b.Title == "War and Peace")
.AsDocumentQuery())
{
while (queryable.HasMoreResults)
{
foreach(Book b in await queryable.ExecuteNextAsync<Book>())
{
// Iterate through books
}
}
}
注解
Azure Cosmos DB LINQ 提供程序编译 LINQ to SQL 语句。 https://docs.microsoft.com/azure/cosmos-db/sql-query-linq-to-sql有关 Azure Cosmos DB LINQ 提供程序支持的表达式列表,请参阅 。 生成的 IQueryable 上的 ToString () 返回已翻译的 SQL 语句。 Azure Cosmos DB 提供程序将成员 JSON.NET 和 DataContract 序列化属性转换为其 JSON 属性名称。