2017-03-19 13 views
1

私はDocumentDBを使い始めましたが、最近追加された集約機能を試してみたかったのです。しかし、私はそれらを使用しようとすると、次の例外が発生します。 Query expression is invalid, expression return type System.Int32 is unsupported. Query must evaluate to IEnumerable.DocumentDB .NetクライアントライブラリLINQ集計エラー

私はすでにDocumentClientオブジェクトを持っています。名前はclientです。

var collectionUri = UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId); 
var options = new FeedOptions {MaxItemCount = -1, EnableCrossPartitionQuery = true}; 

var count = client.CreateDocumentQuery<LogEvent>(collectionUri, options) 
    .Where(f => f.Player == "SomePlayer") 
    .Count(); 

私はローカルエミュレータと対戦しています。コレクションには4つの文書があります。

これは現時点ではローカルエミュレータでは利用できないものですか?または私は何かを間違ってやっていますか? Aravindラマチャンドランは約述べたように

enter image description here

+1

.NET SDK 1.12.1を使用していますか?これはLINQ集約をサポートするバージョンです –

+0

私のAzure DocumentDBエミュレータでコードをテストしたところ、1.12.1より前のバージョンではバージョンをアップグレードしているときに同じ問題が発生する可能性があることが判明しました。期待される。 –

+0

.NET SDKのバージョンをアップグレードした後にこの問題を解決できるかどうかを確認したいだけです。 –

答えて

1

はあなたのコードによると、私は(代わりにローカルエミュレータの)、その後、私はあなたが提供するのと同じエラーが発生する可能性があり、私のAzureのDocumentDBに対してそれをテストしました私のインストールしたバージョンを確認し、それがMicrosoft.Azure.DocumentDB 1.11.4であることを発見しました。バージョンを1.12.1またはそれ以上のバージョンに更新した後、予想される結果を取得できました。次のようにここで

は、.NET用のAzure DocumentDBのrelease notesです:

1.12.1

集計クエリの追加LINQサポート(COUNT、MIN、MAX、SUM、およびにで変更AVG)。