C# Cosmos DB-ExecuteExtAsync返回空对象
我有一个Xamarin应用程序,我在Azure上使用Cosmos DB,在DB端我有这样的文档: 在Xamarin方面,我使用以下代码:C# Cosmos DB-ExecuteExtAsync返回空对象,c#,linq,azure,xamarin,azure-cosmosdb,C#,Linq,Azure,Xamarin,Azure Cosmosdb,我有一个Xamarin应用程序,我在Azure上使用Cosmos DB,在DB端我有这样的文档: 在Xamarin方面,我使用以下代码: List<TempObject> TempObjects = new List<TempObject>(); Uri collectionUri = UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId); var query = _client.Crea
List<TempObject> TempObjects = new List<TempObject>();
Uri collectionUri = UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId);
var query = _client.CreateDocumentQuery<TempObject>(collectionUri).AsDocumentQuery();
while (query.HasMoreResults)
{
TempObjects.AddRange( await query.ExecuteNextAsync<TempObject>() );
}
问题是它返回了正确数量的对象,但所有属性都为空
集合已使用默认设置创建,数据库几乎为空,此集合中只有2个文档
代码似乎完全遵循我找到的所有教程!
主要是这个,
另外,当我将本地CosmosDB emulator与同一个数据库一起使用时,它可以工作,但在Azure上不工作!这是否意味着我的代码是正确的,问题出在Azure方面
你知道这个问题吗?还是调试此类问题的方法
谢谢
编辑:我也尝试过宇航员API,下面是代码:
var cosmosSettings = new CosmosStoreSettings("soclozecosmosdb", "https://soclozedb.documents.azure.com:443/", "E2ipML2QWNVjWITKhX0K0pn7ooCWxbkEk0xkQIC6QIWQCmMjsLU3D2SRTLaIk0dB3bm4k4mWhlpYYpbgsrk2xw==");
ICosmosStore<TempObject> store = new CosmosStore<TempObject>(cosmosSettings);
var users = store.Query().ToList();
var cosmosSettings=新的CosmosStoreSettings(“soclozecosmosdb”)https://soclozedb.documents.azure.com:443/“,”E2IPML2QWNVJWITKHX0K0PN7OOCWXBKEK0XKQIC6QIWQCMMJSLU3D2SRTLAIK0DB3BM4K4WHLPYYPBGSRK2XW==”;
ICosmosStore=新的CosmosStore(cosmosSettings);
var users=store.Query().ToList();
但是,查询返回0个对象 如果出于任何原因,错误地将数据对象子类化为文档,则可能会出现类似的问题。没有理由在CosmosDB SDK中这样做 如果我错了,请更正我,但
\u id
属性应如下所示:“\u id:“ObjectId”(“5b84142d07bf8638bcf7a089”),
在ObjectId周围加上适当的双引号。是这样吗?除此之外,它看起来像一个映射问题,但您的类看起来是正确的。我不知道ObjectId。。。这行是自动添加的,我根本不知道它是什么!谢谢你使用MongoDB api吗?我说的是CosmosDB Mongo api。你需要更改ICosmosStore store=new CosmosStore(cosmosSettings)代码>至ICOSMStore商店=新的COSMOStore(cosmosSettings,“出版物”)
将其指向集合。
class TempObject
{
//[JsonProperty(PropertyName = "_id")]
//public string _id { get; set; }
[JsonProperty(PropertyName = "business_id")]
public string business_id { get; set; }
[JsonProperty(PropertyName = "contentType")]
public string contentType { get; set; }
[JsonProperty(PropertyName = "media")]
public string media { get; set; }
[JsonProperty(PropertyName = "id")]
public string id { get; set; }
}
var cosmosSettings = new CosmosStoreSettings("soclozecosmosdb", "https://soclozedb.documents.azure.com:443/", "E2ipML2QWNVjWITKhX0K0pn7ooCWxbkEk0xkQIC6QIWQCmMjsLU3D2SRTLaIk0dB3bm4k4mWhlpYYpbgsrk2xw==");
ICosmosStore<TempObject> store = new CosmosStore<TempObject>(cosmosSettings);
var users = store.Query().ToList();