我’,运行我的测试套件并尝试使用枚举:
CREATE TYPE dockind AS ENUM ('I','O','Q'); CREATE TABLE document ( doc_id SERIAL,doc_kind dockind NOT NULL DEFAULT 'O',) let openConn() = let conStr = localConnectionString() let conn = new NpgsqlConnection(conStr) conn.open() conn :> IDbConnection //Called after the schema is created let initDb (conn:IDbConnection) = let db = conn :?> NpgsqlConnection db.TypeMapper.MapEnum<DocKind>("dockind") |> ignore
Npgsql.PostgresException (0x80004005): XX000: cache lookup Failed for type 207852 at Npgsql.NpgsqlConnector.<>c__displayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext() --- End of stack trace from prevIoUs location where exception was thrown --- at Npgsql.NpgsqlConnector.<>c__displayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext() in C:\projects\npgsql\src\Npgsql\NpgsqlConnector.cs:line 1032 --- End of stack trace from prevIoUs location where exception was thrown --- at Npgsql.NpgsqlDataReader.NextResult(Boolean async,Boolean isConsuming) in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 444 at Npgsql.NpgsqlDataReader.NextResult() in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 332 at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior,Boolean async,CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1221 at Npgsql.NpgsqlCommand.ExecuteScalar(Boolean async,CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1086 at Npgsql.NpgsqlCommand.ExecuteScalar() in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1063 at CoreLib.Db.queryScalar[a,b](a con,String sql,IEnumerable`1 parameters) in /Users/mamcx/Proyectos/BestSellerPOS/CoreLib/DbStore.fs:line 184
Npgsql版本4.0.0
当我删除模式并重建它时,就会发生这种情况.如果我不重建它,它会工作.那么如何解决这个问题呢?
let createDb() = use con = openConn() let sql = openDbFile() exesql con sql |> ignore let testDb() = DbServer.createDb() let db = DbServer.openConn() DbServer.initDb(db)
我没有使用重用连接来构建数据库并执行测试.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。