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

DocumentClient.CreateDocumentAsync 方法

定义

重载

CreateDocumentAsync(String, Object, RequestOptions, Boolean, CancellationToken)

在 Azure Cosmos DB 服务中将文档创建为异步操作。

CreateDocumentAsync(Uri, Object, RequestOptions, Boolean, CancellationToken)

在 Azure Cosmos DB 服务中将文档创建为异步操作。

CreateDocumentAsync(String, Object, RequestOptions, Boolean, CancellationToken)

在 Azure Cosmos DB 服务中将文档创建为异步操作。

public System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>> CreateDocumentAsync (string documentsFeedOrDatabaseLink, object document, Microsoft.Azure.Documents.Client.RequestOptions options = default, bool disableAutomaticIdGeneration = false, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateDocumentAsync : string * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
override this.CreateDocumentAsync : string * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
Public Function CreateDocumentAsync (documentsFeedOrDatabaseLink As String, document As Object, Optional options As RequestOptions = Nothing, Optional disableAutomaticIdGeneration As Boolean = false, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResourceResponse(Of Document))

参数

documentsFeedOrDatabaseLink
String

DocumentCollection要创建文档的 的链接。 例如 dbs/db_rid/colls/coll_rid/

document
Object

要创建的文档对象。

options
RequestOptions

(可选) 要设置的任何请求选项。 例如,指定要在创建文档时执行的触发器。 RequestOptions

disableAutomaticIdGeneration
Boolean

(可选) 禁用自动 ID 生成,如果为 True,则如果文档中缺少 id 属性,系统将引发异常。

cancellationToken
CancellationToken

(可选) A CancellationToken ,可供其他对象或线程用来接收取消通知。

返回

Document在 表示异步操作的服务响应的 对象中Task创建的 。

实现

例外

documentsFeedOrDatabaseLink如果未设置 或 document

表示异步处理期间发生的故障的合并。 在 InnerExceptions 中查找实际异常 ()

此异常可以封装许多不同类型的错误。 若要确定特定错误,请始终查看 StatusCode 属性。 创建文档时可能会获取的一些常见代码包括:

StatusCode异常原因
400BadRequest - 这意味着所提供的文档出错。 disableAutomaticIdGeneration这可能是真的,并且未提供 ID
403禁止 - 这可能意味着你尝试在其中创建文档的集合已满。
409冲突 - 这意味着 Document ID 与已存在的 ID 字段匹配的document
413RequestEntityTooLarge - 这意味着 Document 超过当前最大实体大小。 有关限制和配额,请参阅文档。
429TooManyRequests - 这意味着已超出每秒请求单位数。 请参阅 DocumentClientException.RetryAfter 值,了解在重试此操作之前应等待多长时间。

示例

Azure Cosmos DB 支持多种不同的文档处理方式。 文档可以扩展 Resource

public class MyObject : Resource
{
    public string MyProperty {get; set;}
}

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.CreateDocumentAsync("dbs/db_rid/colls/coll_rid/", new MyObject { MyProperty = "A Value" });
}

文档可以是可序列化为 JSON 的任何 POCO 对象,即使它不从 Resource

public class MyPOCO
{
    public string MyProperty {get; set;}
}

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.CreateDocumentAsync("dbs/db_rid/colls/coll_rid/", new MyPOCO { MyProperty = "A Value" });
}

最后,Document 也可以是动态对象

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.CreateDocumentAsync("dbs/db_rid/colls/coll_rid/", new { SomeProperty = "A Value" } );
}

创建文档并执行 Pre 和 Post 触发器

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.CreateDocumentAsync(
        "dbs/db_rid/colls/coll_rid/",
        new { id = "DOC123213443" },
        new RequestOptions
        {
            PreTriggerInclude = new List<string> { "MyPreTrigger" },
            PostTriggerInclude = new List<string> { "MyPostTrigger" }
        });
}

另请参阅

适用于

CreateDocumentAsync(Uri, Object, RequestOptions, Boolean, CancellationToken)

在 Azure Cosmos DB 服务中将文档创建为异步操作。

public System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>> CreateDocumentAsync (Uri documentCollectionUri, object document, Microsoft.Azure.Documents.Client.RequestOptions options = default, bool disableAutomaticIdGeneration = false, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateDocumentAsync : Uri * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
override this.CreateDocumentAsync : Uri * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
Public Function CreateDocumentAsync (documentCollectionUri As Uri, document As Object, Optional options As RequestOptions = Nothing, Optional disableAutomaticIdGeneration As Boolean = false, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResourceResponse(Of Document))

参数

documentCollectionUri
Uri

要创建文档的文档集合的 URI。

document
Object

文档对象。

options
RequestOptions

请求的请求选项。

disableAutomaticIdGeneration
Boolean

禁用自动 ID 生成,如果缺少 ID,将引发异常。

cancellationToken
CancellationToken

(表示请求取消的可选) CancellationToken

返回

表示异步操作的服务响应的任务对象。

实现

适用于