[英]How to reverse engineer Postgres 9.0 database
ASP.NET Core 6 MVC 應用程序使用 EF Core 和 Npgsql。
使用逆向工程 Postgres 9.0 數據庫
scaffolder.ScaffoldModel(connectionString.ToString(), dbOpts, modelOpts, codeGenOpts);
拋出異常
Npgsql.PostgresException (0x80004005): 42703: 列“enumsortorder”不存在
在 sql
SELECT
nspname,
typname,
array_agg(enumlabel ORDER BY enumsortorder) AS labels
FROM pg_enum
JOIN pg_type ON pg_type.oid = enumtypid
JOIN pg_namespace ON pg_namespace.oid = pg_type.typnamespace
GROUP BY nspname, typname
帶有堆棧跟蹤
at Npgsql.Internal.NpgsqlConnector.g__ReadMessageLong|213_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage) at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken) at Npgsql.NpgsqlDataReader.NextResult() at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) at Npgsql.EntityFrameworkCore.PostgreSQL.Scaffolding.Internal.NpgsqlDatabaseModelFactory.GetEnums(NpgsqlConnection connection, DatabaseModel databaseModel) 在 Npgsql.EntityFrameworkCore.PostgreSQL.Scaf fold.Internal.NpgsqlDatabaseModelFactory.Create(DbConnection dbConnection, DatabaseModelFactoryOptions 選項) 在 Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerString connectionString.ScaffoldModel( , DatabaseModelFactoryOptions databaseOptions, ModelReverseEngineerOptions modelOptions, ModelCodeGenerationOptions codeOptions)
如何在 .NET6 中對 Postgres 9.0 數據庫進行逆向工程? 幾乎不使用枚舉數據類型。
我已經為 6.0.2 修復了這個問題,請參閱https://github.com/npgsql/efcore.pg/issues/2160 。
如果您不在 github 和 stackoverflow 上交叉發布相同的問題會更好 - 它主要在兩個地方創建更多的工作回答。 如果某些東西看起來像 Npgsql 錯誤,並且 issue 應該足夠了,否則 stackoverflow 對使用問題等有好處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.