我发现通过 C# API 查询与使用 Azure 门户中的查询资源管理器进行查询之间 Int64 字段的值发生了不同的变化。
Document
[
{
"_id": "15072358-f9eb-4e92-bde1-18e038484042",
"messageId": "15072358-f9eb-4e92-bde1-18e038484042",
"async": true,
"sequence": 0,
"sender": "[email protected] /cdn-cgi/l/email-protection",
"recipient": "[email protected] /cdn-cgi/l/email-protection",
"transmittedTicks": 636352784545156500,
"receivedTicks": 636352784546356500,
"processed": true,
"id": "15072358-f9eb-4e92-bde1-18e038484042",
"_rid": "un4kAO--TAABAAAAAAAAAA==",
"_self": "dbs/un4kAA==/colls/un4kAO--TAA=/docs/un4kAO--TAABAAAAAAAAAA==/",
"_etag": "\"00005c09-0000-0000-0000-5963c8bc0000\"",
"_attachments": "attachments/",
"_ts": 1499711676
}
]
C# 使用 DocumentDb nuget
var query = client.CreateDocumentQuery<Expectation>(documentUri)
.OrderBy(i=>i.transmittedTicks)
.Select(i=>i.transmittedTicks)
.AsDocumentQuery();
第一个值的结果为636352784545156480
SQL 查询浏览器
SELECT c.transmittedTicks FROM c order by c.transmittedTicks
第一个值的结果为636352784545156500
这读起来是一个精度问题,我认为已经存在了类似问题 https://github.com/Azure/azure-documentdb-dotnet/issues/151在过去。是否仍然存在未解决的问题或者这是预期的行为?