Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Cosmos DB-ExecuteExtAsync返回空对象_C#_Linq_Azure_Xamarin_Azure Cosmosdb - Fatal编程技术网

C# Cosmos DB-ExecuteExtAsync返回空对象

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

我有一个Xamarin应用程序,我在Azure上使用Cosmos DB,在DB端我有这样的文档:

在Xamarin方面,我使用以下代码:

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();