У меня странная проблема с Npgsql
. Я пытаюсь удалить запись в таблице с внешним ключом и все еще используется. Командная строка Postgres дает мне ошибку Key is still referenced
, которая ожидается.Npgsql выбрасывается неверно Исключение
Однако, если я пытаюсь сделать это с Npgsql
из моего приложения, я получаю следующее исключение:
Backend послал нераспознанный тип ответа: е
согласно источникам в Интернете, это, скорее всего, вызвано многопоточными, но я не использую другой поток в этом приложении. Я проверил, и весь код работает в «Основной теме».
Тогда, если я поймаю это исключение и попытаться запросить мою базу данных снова с этим кодом:
DataSet ds = new DataSet();
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
ds.Reset();
da.Fill(ds);
я получаю это исключение:
Невозможно записать в BufferedStream в то время как буфер считывания не пусто, если базовый поток не доступен для поиска. Убедитесь, что поток, лежащий в основе этого BufferedStream, может искать или избегать чередования операций чтения и записи в этом BufferedStream.
Все, что я хочу, просто поймать ошибку, сообщить пользователю, что он не может удалить запись и сделать это. Теперь он не использует всю заявку без уважительной причины.
Это не исключение, которое вы должны увидеть, используя Npgsql. Это означает, что по какой-то причине, что Npgsql видел в работе с базой данных, было не то, что ожидалось увидеть, даже в условиях ошибки. То, что он не справлялся с этим, является ошибкой. Производите минимальное воспроизведение и открывайте с ними ошибку. –