使用Id以外的属性查询DocumentDB

Sam*_*Sam 4 linq azure azure-cosmosdb

我想在DocumentDB数据库中查询我的文档.我想使用LINQ来处理DocumentDB查询,并想查询facebookUsername字段.

如果我使用下面的代码查询标准Id字段,它工作正常,但当我尝试使用facebookUsername字段,我得到一个编译错误,读取

"'Microsoft.Azure.Documents.Document'不包含'facebookUsername'的定义,并且没有扩展方法'facebookUsername'接受类型'Microsoft.Azure.Documents.Document'的第一个参数可以找到(你是否错过了使用指令或汇编参考?)"

这是我目前用于通过Id查询的代码,这是有效的.我只想查询facebookUsername字段.

dynamic doc = (from f in client.CreateDocumentQuery(collection.DocumentsLink)
   where f.Id == myId.ToString()
   select f).AsEnumerable().FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

如何通过facebookUsername字段修改我的代码以进行查询?

Rya*_*our 5

var families = from f in client.CreateDocumentQuery<Family>(colSelfLink)
           where f.Address.City != "NY"
           select f;
Run Code Online (Sandbox Code Playgroud)

会给你一个家庭列表:{"地址":{"城市":"纽约"}}}

如果你没有像Family这样的对象,那么你就不能使用Linq来评估动态对象的查询.然后,您需要使用SQL Query Grammar.

var families = client.CreateDocumentQuery<Family>(colSelfLink. "SELECT * FROM c WHERE field=value").AsEnumnerable();
Run Code Online (Sandbox Code Playgroud)

应该管用.