Postgresql Npgsql.postgresception(0x80004005):XX000:删除架构时,类型207852的缓存查找失败

Postgresql Npgsql.postgresception(0x80004005):XX000:删除架构时,类型207852的缓存查找失败,postgresql,f#,npgsql,postgresql-9.6,Postgresql,F#,Npgsql,Postgresql 9.6,我正在运行测试套件并尝试使用枚举: 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 NpgsqlConne

我正在运行测试套件并尝试使用枚举:

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在第一次连接到给定数据库时,会缓存该数据库中的所有PostgreSQL类型(类型缓存在连接字符串中)。如果对类型进行任何更改,如定义新类型或删除类型,则必须通过调用
NpgsqlConnection.ReloadTypes()
通知Npgsql刷新类型缓存

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
let createDb() =
    use con = openConn()
    let sql = openDbFile()
    exeSql con sql |> ignore

let testDb() =
    DbServer.createDb()
    let db = DbServer.openConn()
    DbServer.initDb(db)