2

jQuery を使用して、SharePoint 2010 の listData.svc から情報を取得しています。クエリの大文字と小文字の区別に関して、いくつかの矛盾があることに気付きました。

  • 次のコマンドでは、大文字と小文字が区別されます。

    ...&$filter=substringof('文字列', プロパティ) eq True

  • 次のコマンドは大文字と小文字を区別しません

    ...&$filter=substringof(tolower('文字列'), tolower(プロパティ)) eq True

  • 次のコマンドも大文字と小文字を区別しませんが、はるかに短くなっています。

    ...&$filter=substringof('String', property) または substringof('String', property2)

  • ただし、ショート メソッドを使用した場合の大文字と小文字の区別は、1 つの部分が 2 レベルよりも下のプロパティを使用している場合、フィルター全体で失われます。したがって、次のコマンドでは、フィルター全体で再び大文字と小文字が区別されます。

    ...&$filter=substringof('String', property/property/property) または substringof('String', property2)

これは SharePoint のサービスの問題ですか? それとも、私は何か間違ったことをしていますか?

4

1 に答える 1

0

ListData.svc のバグのようです。

比較 (1 日の終わりに SQL サーバーに委譲される) で大文字と小文字が区別される場合、クエリでは常に大文字と小文字が区別される必要があります。

明らかに tolower 呼び出しは、ケースが一致するかどうかに関係なく物事を一致させるため、それを無視できます。ただし、別のプロパティで OR を実行する理由がわかりません。

SharePoint のバグであるか、予期していたデータを返す OR 句を誤って選択してしまった可能性があります。

于 2012-09-04T17:36:41.383 に答える