См. этот поток для подобного вопроса.
Вкратце я полагаю, что можно установить Код состояния HTTP (на один из кодов ошибки) и предоставить пользовательское сообщение в свойство StatusDescription:
OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
response.StatusCode = System.Net.HttpStatusCode.Forbidden;
response.StatusDescription = "Custom";
я не знаю много о распространенности этой техники в реальном мире, к сожалению.
Ваши похожие запросы, вероятно, не могут использовать созданные вами индексы, потому что:
1) ваш критерий LIKE начинается с подстановочного знака.
2) вы использовали функцию с вашим критерием LIKE .
Возможно, быстрые - это привязанные шаблоны с чувствительностью к регистру, которые могут использовать индексы. т.е. в начале строки соответствия нет подстановочного знака, поэтому исполнитель может использовать сканирование диапазона индексов. ( соответствующий комментарий в документации здесь ) Lower и ilike также потеряют вашу способность использовать индекс, если вы специально не создадите индекс для этой цели (см. функциональные индексы ).
Если вы хотите найти строку в середине поля, вам следует изучить полный текст или индексы триграмм . Первый из них находится в ядре Postgres, другой доступен в модулях contrib.
Вы можете установить Wildspeed, другой тип индекса в PostgreSQL. Wildspeed работает с подстановочными знаками %word% без проблем. Недостатком является размер индекса, он может быть большим, очень большим.