所以我正在使用Microsoft的Microsoft.Azure.DocumentDB.Core api从.Net Core应用程序连接到Cosmos DB。
一切正常,因为我可以创建,编辑和获取文档,以及创建新的数据库或集合。如果使用DocumentDB.Core api创建数据库或集合,则可以在Azure门户中看到它们。但是,当我创建文档时,看不到它们。每当我尝试加载文档时,都会多次出现此错误,该错误次数等于我拥有的文档数。
Error while fetching page of documents {"code":400,"body":"Command find failed: Unknown server error occurred when processing this request.."}
我知道我已有记录,因为如果保存ID,就可以恢复创建,然后可以使用DocumentDB.Core api进行查找。
这是我要传递的模型:
public class Api
{
public Api()
{
Client = new ExpandoObject();
}
[JsonProperty(PropertyName = "id")]
public string Id { get; set; }
public ExpandoObject Client { get; set; }
}
现在,在切换到DocumentDB.Core之前,我正在使用MongoDB.Driver,这是我的模型:
public class Api
{
public Api()
{
Client = new ExpandoObject();
}
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("client")]
public ExpandoObject Client { get; set; }
}
使用MongoDB.Driver和上面的模型,我可以在Azure门户中查看我的数据。
我是否有理由无法使用Microsoft自己的工具在Azure CosmosDB门户中看到数据?我想念财产吗?我唯一不同的是,使用MongoDB.Drive,我的ID在创建的文档中为_id
,而使用DocumentDB.Core,我的ID在创建的文档中为id
。我不确定这是否重要,或如何解决。
答案 0 :(得分:0)
这是一个类似的问题,您可以看一下:
进一步了解,以下可能是错误代码400的原因:-
-请求正文中的JSON,SQL或JavaScript无效。
-此外,当资源的POST或PUT主体中不存在或未设置资源的必需属性时,也可以返回400。
当GET操作的一致性级别被该帐户的一组更强的一致性所取代时,也会返回-400。
当需要x-ms-documentdb-partitionkey的请求不包含-p时,也会返回-400。
希望有帮助。