无法使用 ormlite 刷新物化视图

Can't refresh materialized view with ormlite

我已经将 ServiceStack 更新到项目的最新版本,现在这条线似乎给我带来了问题:

_db.ExecuteNonQuery("REFRESH MATERIALIZED VIEW product_book;");

它在日志中生成此错误:

2020-08-25 23:14:26.8896||DEBUG|OrmLiteResultsFilterExtensions|SQL: REFRESH MATERIALIZED VIEW product_book; |url: |action: 
2020-08-25 23:17:19.6129||ERROR|ImportBookHelper|Error reading xml Npgsql.PostgresException (0x80004005): 42P01: relation "product_book" does not exist
   at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext() in C:\projects\npgsql\src\Npgsql\NpgsqlConnector.cs:line 973
--- 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 449
   at Npgsql.NpgsqlDataReader.NextResult() in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 298
   at Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1178
   at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 977
   at Npgsql.NpgsqlCommand.ExecuteNonQuery() in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 959
   at ServiceStack.OrmLite.OrmLiteResultsFilterExtensions.ExecNonQuery(IDbCommand dbCmd, String sql, Object anonType) in C:\BuildAgent\worke4cc16641be8c0\src\ServiceStack.OrmLite\OrmLiteResultsFilterExtensions.cs:line 32
   at ServiceStack.OrmLite.OrmLiteExecFilter.Exec[T](IDbConnection dbConn, Func`2 filter) in C:\BuildAgent\worke4cc16641be8c0\src\ServiceStack.OrmLite\OrmLiteExecFilter.cs:line 64
  Exception data:
    Severity: ERROR
    SqlState: 42P01
    MessageText: relation "product_book" does not exist
    File: namespace.c
    Line: 407
    Routine: RangeVarGetRelidExtended|url: |action: 

我已经在 postgresql 控制台中尝试了 运行 REFRESH MATERIALIZED VIEW product_book;,它运行良好。我也尝试过使用 ExecuteSql() 但总是出现同样的问题。

它说关系不存在但确实存在。此外,连接字符串肯定是正确的数据库,它可以 read/write 没问题。

这曾经有效,但现在似乎已停止工作,我不明白为什么。

这不会成为 OrmLite 的问题,它只是将 SQL as-is 发送到返回服务器 PostgreSQL 错误的 Npgsql ADO.NET 提供程序.

由于某种原因,连接字符串无法查看或访问您的 product_book 实体化视图,一些潜在的问题可能是用户可能无法访问它,或者它在不同的架构中。