Azure Cosmos DB:SQL API 的 .NET 示例

适用于 :SQL API

azure-cosmos-dotnet-v2 GitHub 存储库中包含可对 Azure Cosmos DB 资源执行 CRUD 操作和其他常见操作的最新 .NET 示例解决方案。 本文将提供:

  • 指向每个示例 C# 项目文件中各项任务的链接。
  • 指向相关的 API 参考内容的链接。

有关 .NET SDK 3.0 版(预览版)的代码示例,请参阅 azure-cosmos-dotnet-v3 GitHub 存储库中的最新示例。

先决条件

已安装包含 Azure 开发工作流的 Visual Studio 2019

Microsoft.Azure.DocumentDB NuGet 包

Azure 订阅,或免费的 Cosmos DB 试用帐户

注意

这些示例都是独立的,运行完成后,可通过多次调用 CreateDocumentCollectionAsync() 对其进行设置和清理。 每次执行此操作时,都会根据集合的性能层,对订阅收取使用 1 小时的费用。

数据库示例

DatabaseManagement 项目示例的 RunDatabaseDemo 方法演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos 数据库,请参阅使用数据库、容器和项

任务 API 参考
创建数据库 DocumentClient.CreateDatabaseIfNotExistsAsync
按 ID 读取数据库 DocumentClient.ReadDatabaseAsync
Read all the databases DocumentClient.ReadDatabaseFeedAsync
删除数据库 DocumentClient.DeleteDatabaseAsync

集合示例

CollectionManagement 项目示例的 RunCollectionDemo 方法演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos 集合,请参阅使用数据库、容器和项

任务 API 参考
创建集合 DocumentClient.CreateDocumentCollectionIfNotExistsAsync
Change configured performance of a collection DocumentClient.ReplaceOfferAsync
按 ID 获取集合 DocumentClient.ReadDocumentCollectionAsync
Read all the collections in a database DocumentClient.ReadDocumentCollectionFeedAsync
删除集合 DocumentClient.DeleteDocumentCollectionAsync

文档示例

DocumentManagement 项目示例的 RunDocumentsDemo 方法演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos 文档,请参阅使用数据库、容器和项

任务 API 参考
创建文档 DocumentClient.CreateDocumentAsync
按 ID 读取文档 DocumentClient.ReadDocumentAsync
Read all the documents in a collection DocumentClient.ReadDocumentFeedAsync
查询文档 DocumentClient.CreateDocumentQuery
替换文档 DocumentClient.ReplaceDocumentAsync
更新插入文档 DocumentClient.UpsertDocumentAsync
删除文档 DocumentClient.DeleteDocumentAsync
使用 .NET 动态对象 DocumentClient.CreateDocumentAsync
DocumentClient.ReadDocumentAsync
DocumentClient.ReplaceDocumentAsync
使用条件 ETag 检查替换文档 DocumentClient.AccessCondition
Documents.Client.AccessConditionType
仅当文档已更改时读取文档 DocumentClient.AccessCondition
Documents.Client.AccessConditionType

索引示例

IndexManagement 项目示例的 RunIndexDemo 方法演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 中的索引,请参阅索引策略索引类型索引路径

任务 API 参考
从索引中排除文档 IndexingDirective.Exclude
使用延迟索引 IndexingPolicy.IndexingMode
从索引中排除指定的文档路径 IndexingPolicy.ExcludedPaths
对哈希索引路径强制执行范围扫描操作 FeedOptions.EnableScanInQuery
对字符串使用范围索引 IndexingPolicy.IncludedPaths
RangeIndex
执行索引转换 ReplaceDocumentCollectionAsync

地理空间示例

示例 Geospatial 项目的 RunDemoAsync 方法演示如何执行以下任务。 若要在运行以下示例之前了解 GeoJSON 和地理空间数据,请参阅使用地理空间和 GeoJSON 位置数据

任务 API 参考
对新集合启用地理空间索引 IndexingPolicy
IndexKind.Spatial
DataType.Point
使用 GeoJSON 点插入文档 DocumentClient.CreateDocumentAsync
DataType.Point
查找指定距离内的点 ST_DISTANCE
GeometryOperationExtensions.Distance
查找多边形内的点 ST_WITHIN
GeometryOperationExtensions.Within
多边形
对现有集合启用地理空间索引 DocumentClient.ReplaceDocumentCollectionAsync
DocumentCollection.IndexingPolicy
验证点和多边形数据 ST_ISVALID
ST_ISVALIDDETAILED
GeometryOperationExtensions.IsValid
GeometryOperationExtensions.IsValidDetailed

查询示例

示例 Queries 项目的 RunDemoAsync 方法显示了如何使用 SQL 查询语法、查询的 LINQ 提供程序和 Lambda 执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 中的 SQL 查询引用,请参阅 Azure Cosmos DB 的 SQL 查询示例

任务 API 参考
查询所有文档 DocumentQueryable.CreateDocumentQuery
使用 == 查询等式 DocumentQueryable.CreateDocumentQuery
使用 != 和 NOT 查询不等式 DocumentQueryable.CreateDocumentQuery
使用范围运算符(如 <> 、、=、= )进行 < 查询 DocumentQueryable.CreateDocumentQuery
使用范围运算符对字符串进行查询 DocumentQueryable.CreateDocumentQuery
使用 ORDER BY 进行查询 DocumentQueryable.CreateDocumentQuery
使用聚合函数进行查询 DocumentQueryable.CreateDocumentQuery
使用子文档 DocumentQueryable.CreateDocumentQuery
使用文档内联接进行查询 DocumentQueryable.CreateDocumentQuery
使用字符串、数学和数组运算符进行查询 DocumentQueryable.CreateDocumentQuery
通过使用 SqlQuerySpec 的参数化 SQL 进行查询 DocumentQueryable.CreateDocumentQuery
SqlQuerySpec
使用显式分页进行查询 DocumentQueryable.CreateDocumentQuery
并行查询已分区集合 DocumentQueryable.CreateDocumentQuery
使用 ORDER BY 针对已分区集合进行查询 DocumentQueryable.CreateDocumentQuery

更改源示例

示例 ChangeFeed 项目的 RunDemoAsync 方法演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 中的更改源,请参阅读取 Azure Cosmos DB 更改源更改源处理器

任务 API 参考
读取更改源 DocumentClient.CreateDocumentChangeFeedQuery
读取分区键范围 DocumentClient.ReadPartitionKeyRangeFeedAsync

更改源处理器示例 ChangeFeedMigrationTool 演示如何使用更改源处理器库将数据复制到另一个 Cosmos 容器。

服务器端编程示例

示例 ServerSideScripts 项目的 RunDemoAsync 方法演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 中的服务器端编程,请参阅存储过程、触发器和用户定义的函数

任务 API 参考
创建存储过程 DocumentClient.CreateStoredProcedureAsync
执行存储过程 DocumentClient.ExecuteStoredProcedureAsync
读取存储过程的文档源 DocumentClient.ReadDocumentFeedAsync
使用 ORDER BY 创建存储过程 DocumentClient.CreateStoredProcedureAsync
创建预触发器 DocumentClient.CreateTriggerAsync
创建后触发器 DocumentClient.CreateTriggerAsync
创建用户定义函数 (UDF) DocumentClient.CreateUserDefinedFunctionAsync

用户管理示例

示例 UserManagement 项目的 RunDemoAsync 方法演示如何执行以下任务:

任务 API 参考
创建用户 DocumentClient.CreateUserAsync
对集合或文档设置权限 DocumentClient.CreatePermissionAsync
获取用户权限列表 DocumentClient.ReadUserAsync
DocumentClient.ReadPermissionFeedAsync

后续步骤

尝试为迁移到 Azure Cosmos DB 进行容量计划? 可以使用有关现有数据库群集的信息进行容量规划。