Azure cosmosdb DocumentQueryException:查询表达式无效
我需要在cosmosdb中查询集合 我的实体是: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
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
}