Azure cosmosdb DocumentQueryException:查询表达式无效

Azure cosmosdb DocumentQueryException:查询表达式无效,azure-cosmosdb,Azure Cosmosdb,我需要在cosmosdb中查询集合 我的实体是: public class Tenant { public string Id { get; set; } public string ClientId { get; set; } public string ClientSecret { get; set; } public string TenantDomainUrl { get; set; } p

我需要在cosmosdb中查询集合

我的实体是:

 public class Tenant
    {
        public string Id { get; set; }

        public string ClientId { get; set; }

        public string ClientSecret { get; set; }

        public string TenantDomainUrl { get; set; }

        public bool Active { get; set; }

        public string SiteCollectionTestUrl { get; set; }


        public override string ToString()
        {
            return JsonConvert.SerializeObject(this);
        }
    }
我的控制器动作是:

 [HttpGet]
        [Route("api/Tenant/GetActiveTenant")]
        public Tenant GetActiveTenant()
        {
            var tenantStore = CosmosStoreFactory.CreateForEntity<Tenant>();
            return tenantStore.Query().Where(x => x.Active == true).FirstOrDefault();
        }
同样,您应该为Cosmonaut使用
Async
方法扩展,因为它们将正确地通过SDK的异步流

例如,在本例中,您应该将代码更改为
await tenantStore.Query()。其中(x=>x.Active==true)。FirstOrDefaultAsync()

PS:您还应该考虑将<代码> [JSONTRONTAL(“ID”)] /代码>属性添加到您的代码> ID 属性中。即使不需要它,但如果您想基于

Id
进行查询,也建议使用它

{
    "ClientId": "aaaaaaaa-4817-447d-9969-e81df29c813d",
    "ClientSecret": "aaaaaaaaaaaaaaaaaa/esrQib6r7FAGd0=",
    "TenantDomainUrl": "abc.onmicrosoft.com",
    "SiteCollectionTestUrl": "https://abc.sharepoint.com/sites/Site1",
    "Active": true,
    "id": "d501acc6-6b63-4f0f-9782-1473af469b56",
    "_rid": "kUZJAOPekgAEAAAAAAAAAA==",
    "_self": "dbs/kUZJAA==/colls/kUZJAOPekgA=/docs/kUZJAOPekgAEAAAAAAAAAA==/",
    "_etag": "\"00002602-0000-0000-0000-5b69fe790000\"",
    "_attachments": "attachments/",
    "_ts": 1533673081
}