私はWindows Azure Table Called ChannelsVideosと呼ばれ、チャネルとビデオの両方を保持するために非正規化されています。 PartitionKeyはそのようなカテゴリーとチャンネルのタイトルで構成されていますWindows AzureテーブルCompareToが動作しない
ビジネス、いくつかのチャンネルタイトル 宗教、他のチャンネルタイトル
私が使用して - それらを区切るために、文字を「」。
「行」がチャンネルまたはビデオ項目であるかどうかを示す「チャンネル」または「ビデオ」の種類のプロパティがあります。
私が抱えている問題は、特定のユーザーのチャンネル数を数えようとしていることです。
return (from g in tableServiceContext.CreateQuery<ChannelVideoEntity>(Enums.Tables.ChannelsVideos.ToString())
where g.PartitionKey.CompareTo(categoryAndUser.CategoryID + "-") >= 0
&& g.Kind.Equals(Enums.TableKinds.Channel.ToString())
&& g.UserID.Equals(categoryAndUser.Key)
select g).AsTableServiceQuery().Execute().Count();
実際に何が起こっているチャネルのための動画も同様にカウントされていることである。私はこのようになります文は持っています。何故ですか?たとえば、チャンネルを作成して4つの動画を追加すると、上記のステートメントから返されるチャンネルの数は5になります。チャンネルがカウントされ、チャンネルに関連付けられた4つの動画がカウントされるためです。私が欲しいのは1のチャンネル数です。
私は何をしているのですか?私はcompareToを間違って使用していますか?どうすれば使用できますか?
残念ながら、あなたが提案するアプローチは事実の後にあります。私がしようとしているのは、Azureテーブルにクエリに一致するレコードを見つけて返す作業だけです。言い換えれば、結果を返す前に別個の部分が起こることを望みます。 –