如何跟踪documentdb Linq提供程序生成的查询?

Mic*_*lle 6 c# linq azure-cosmosdb

如何在linq语句发送到服务器之前看到文档DB sql查询(在字符串中)?

_documentClient.CreateDocumentQuery<MyType>(
                        UriFactory.CreateDocumentCollectionUri(DatabaseName,
                            CollectionName)).Where(....).SelectMany(...)
Run Code Online (Sandbox Code Playgroud)

我想用它来追踪.

Ara*_* R. 9

您可以在DocumentDB查询上调用ToString()以获取通过线路发送的LINQ表达式的SQL转换.

string sql = client.CreateDocumentQuery<MyType>(collectionUri).Where(t => t.Name = "x").ToString();
// sql is somthing like SELECT * FROM c WHERE c["Name"] = "x"
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用我发现的“Count()”,这将不起作用。 (2认同)

小智 5

您可以使用 Fiddler 并在发送后查看请求的 JSON。

在此处查看示例:

CosmosDB\DocumentDB 生成的 SQL 查询