2015-06-26 3 views
0

Мой фильтр Строка в течение таблицы запроса выглядит, как показано ниже ...Таблица запросов в лазури

string FilterString = string.Format("PartitionKey eq '{0}' 
and RowKey ge '{1}' and RowKey le '{2}'", 
partitionKey, startsWith, startsWith); 

https://msdn.microsoft.com/library/azure/dd894031.aspx говорит, что вы можете сделать соответствие префиксов имен. Допустим, есть 3 имена ...

  • денщик
  • сверхчеловек
  • верхолаз

Я хотел бы запрос, чтобы вернуться как сверхчеловека и Spiderman, когда я установил StartsWith на 'S'

Приведенный выше запрос работает, когда я говорю

RowKey ge 's' and Rowkey le 't' 

Однако, я хотел бы, чтобы это работало, когда он говорит ...

RowKey ge 's' and Rowkey le 's' 

ле в настоящее время рассматривается как ЛТ и ИМХО не вел себя так, как это делает. Я делаю что-то неправильно?

ответ

1

Если вы хотите, чтобы вернуться superman и spiderman (не уверен, как DC & Marvel Comics согласятся, что, но это уже совсем другая история :)), то запрос вы хотите выпустить это:

RowKey ge 's' and Rowkey lt 't' 

Теперь давайте рассмотреть этот запрос:

RowKey ge 's' and Rowkey le 's' 

В основном этот запрос будет возвращать данные только где RowKey экв s. Например, рассмотрим superman. Теперь superman определенно больше s, поэтому ваше первое выражение (RowKey ge 's') равно true, но в то же время ваше второе выражение (Rowkey le 's') равно false, поэтому результат всего выражения будет false.

UPDATE

Чтобы проверить строки, вы могли бы просто написать консольное приложение, вроде следующего:

 string a = "s"; 
     string b = "superman"; 
     string c = "sz"; 
     Console.WriteLine(b.CompareTo(a));//Prints 1 
     Console.WriteLine(b.CompareTo(c));//Prints -1 

Как вы можете видеть выше, superman больше s и меньше, чем sz ,

+0

Спасибо за помощь. Мой вопрос: почему Rowkey le 's' false? Я понимаю, почему Rowkey lt 'is false. В чем разница между le & lt then ?? –

+0

'le'' меньше или равно ', а' lt' меньше '. Таким образом, '' супермен <= "s" ', безусловно, является ложным. НТН. –

+0

Извините, я не согласен. <является ложным по очевидным причинам ... но он равен s, и поэтому он должен сработать. Я могу легко кодировать его, но причина, по которой я задал вопрос, - понять, если это ошибка, или я чего-то не хватает. –

Смежные вопросы