你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IDocumentClient.CreateDocumentQuery 方法

定义

重载

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 属性名称。

另请参阅

适用于