Скажем, у меня есть таблица под названием «exampletable» в postgresql с 100 типизированными полями citext, назовем их «field1», «field2» и т. Д. ... Как читать эти поля с помощью npgsql? В идеале я хотел бы использовать следующий SQL:Хо, читаю ли поле postgresql citext с npgsql 3.0.0?
select * from exampletable
Но когда я выполняю с помощью SQL npgsql 3.0.0 я получаю следующее NotSupportedException
:
«Поле field1 имеет тип в настоящее время неизвестный Npgsql (OID 16466). Вы можете получить его в виде строки, пометив его как неизвестно, пожалуйста, см справку ...»
чтобы преодолеть это, я мог бы вручную бросить все поля в текст запроса SQL, как так:
select field1::text, field2::text, ... field99::text, field100::text from exampletable
Как вы можете видеть, это чрезвычайно многословно и громоздко. Должен ли я вручную отбрасывать все поля в текст в моем запросе или есть ли более простой способ настроить npgsql, чтобы разрешить типы citext в передаче? Как мне обрабатывать другие нестандартные типы расширений в postgresql?
Любая помощь будет оценена по достоинству.
Вопрос о бонусе: Я попытался найти FAQ, на который ссылается сообщение об исключении, но я ничего не нашел. Знаете ли вы, на какой странице ссылается сообщение?
Спасибо @Shay :) – JohannesH
Создал раздел FAQ с информацией об этом: http://www.npgsql.org/doc/faq.html –
@ShayRojansky У меня есть аналогичная проблема, но это происходит, когда поле citext используется в оператор where с параметром строки DbType, тогда значение и поле преобразуются в :: текст, и выражение становится чувствительным к регистру. Есть ли способ исправить это или какое-то обходное решение? – khorvat