0

e.RowKey.ToLower() を持つ特定のエンティティを照会すると、例外がスローされます

CustomerEntity customerEntity = (from e in serviceContext.CreateQuery<CustomerEntity>("Customer")
                                     where e.RowKey.ToLower() == firstName.ToLower()                                         
                                     select e).FirstOrDefault();

基本的に、大文字と小文字を区別しないユーザー名を確認したい..Azureテーブルはパートナーによって管理されているため、ユーザーエントリを小文字でテーブルに入力するように指示することはできません.

これをコードで処理する必要があります。

よろしく、 Vivek

4

2 に答える 2

3

ToLower() はフィルター式の一部として有効ではありません。これは、Table Storage が操作としてサポートしていないためです。

次の 2 つのオプションがあります。

  1. 入力するすべてのデータが小文字であることを確認してください。大文字/小文字混合バージョンも必要な場合は、別の列に入力してください。
  2. すべてのデータを引き戻し、メモリ内でフィルター処理を行います。これは、少数のレコードしか取得していない場合に有効です。
于 2012-09-25T13:31:01.860 に答える
1

ToLower()メソッドが Azure でサポートされていない ため、例外が発生しています。

代わりにこの方法で比較できると思います

where e.RowKey.Equals(username, StringComparison.InvariantCultureIgnoreCase);

あなたがしようとしていることを達成するはずですが、Equals()代わりにサポートされている方法を使用します。

于 2012-09-25T13:30:41.380 に答える