Npgsql引发不正确的异常

本文关键字:异常 不正确 Npgsql | 更新日期: 2023-09-27 18:24:19

我对Npgsql有一个奇怪的问题。我试图删除表中有外键且仍在使用中的记录。Postgres的命令行给了我一个Key is still referenced错误,这是意料之中的。

但是,如果我尝试从我的应用程序中使用Npgsql,我会得到以下异常:

后端发送了无法识别的响应类型:e

根据互联网上的消息来源,这很可能是由多线程引起的,但我在这个应用程序中没有使用其他线程。我检查了一下,所有代码都在"主线程"上运行。

然后,如果我发现这个异常,并尝试使用以下代码再次查询我的数据库:

DataSet ds = new DataSet();
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
ds.Reset();
da.Fill(ds);

我得到这个例外:

如果基础流不可查找,则在读取缓冲区不为空时无法写入BufferedStream。请确保此BufferedStream的基础流可以查找或避免对此BufferedStream执行交错读写操作。

我只想抓住错误,告诉用户他不能删除记录,然后就可以了。现在,它毫无理由地关闭了整个应用程序。

Npgsql引发不正确的异常

这是Npgsql中的一个错误。我将DLL更新到了2.2.7版本,现在我得到了正确的异常。