4

DocumentDB データベースで自分のドキュメントにクエリを実行したいと考えています。LINQ を使用して DocumentDB クエリを処理し、facebookUsername フィールドに対してクエリを実行したいと考えています。

以下のコードを使用して標準の Id フィールドをクエリすると、正常に動作しますが、facebookUsername フィールドを使用して実行しようとすると、次のようなコンパイル エラーが発生します。

「'Microsoft.Azure.Documents.Document' には 'facebookUsername' の定義が含まれておらず、タイプ 'Microsoft.Azure.Documents.Document' の最初の引数を受け入れる拡張メソッド 'facebookUsername' が見つかりませんでした (使用していませんか?ディレクティブまたはアセンブリ参照?)"

Idによるクエリに現在使用しているコードは次のとおりです。これは機能します。facebookUsername フィールドを照会できるようにしたいだけです。

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

facebookUsername フィールドでクエリを実行するようにコードを変更するにはどうすればよいですか?

4

1 に答える 1

5
var families = from f in client.CreateDocumentQuery<Family>(colSelfLink)
           where f.Address.City != "NY"
           select f;

Family: { "Address" : {"City": "NY"} } } のリストが表示されます。

私の場合、Family のようなオブジェクトがなければ、Linq を使用して動的オブジェクトのクエリを評価することはできません。次に、SQL クエリ文法を使用する必要があります。

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

動作するはずです。

于 2014-11-20T01:36:32.373 に答える