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上交错读写操作。
我想要的只是抓住错误,告诉用户他不能删除记录并完成。现在,它没有充分理由取消整个应用程序。
答案 0 :(得分:0)
这是Npgsql
中的错误。我将DLL更新到2.2.7版本,现在我得到了正确的异常。