Ниже приведен пример использования операторов GreaterThanOrEqual
и LessThan
в качестве расширения для имени целевого столбца.
Фильтр сочетает в себе две части:
- ничего больше или равную вашей приставкой StartsWith,
- приращение последнего символа вашего префикса и найти что-нибудь меньше, чем это.
Например, startsWith
префикс "CAR" подготовит что-то вроде s >= "CAR" && s < "CAS"
.
public static string GetStartsWithFilter(this string columnName, string startsWith)
{
var length = startsWith.Length - 1;
var nextChar = startsWith[length] + 1;
var startWithEnd = startsWith.Substring(0, length) + (char)nextChar;
var filter = TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition(columnName, QueryComparisons.GreaterThanOrEqual, startsWith),
TableOperators.And,
TableQuery.GenerateFilterCondition(columnName, QueryComparisons.LessThan, startWithEnd));
return filter;
}
Использование:
var query = new TableQuery<MyTableEntity>().Where(myColumnName.GetStartsWithFilter(prefix));
основе Alexandre B's blog post
Этот ответ неверен! Вы не можете выполнять частичный поиск с помощью таблиц Azure с помощью таких операторов, как StartsWith или Contains. –
Мы предпочитаем ответы здесь без голосования, пожалуйста, сообщения лучше всего привлекают +/- голосов органично. Благодаря! – halfer