【发布时间】:2022-12-19 15:33:43
【问题描述】:
我正在尝试使用以下命令搭建现有的 Postgres 数据库
dotnet ef dbcontext scaffold "<connection string>" Npgsql.EntityFrameworkCore.PostgreSQL -v
这导致以下异常:
Npgsql.NpgsqlException (0x80004005): 从流中读取时出现异常 ---> System.IO.EndOfStreamException:试图读取流的末尾。 在 Npgsql.Internal.NpgsqlReadBuffer.g__EnsureLong|41_0(NpgsqlReadBuffer 缓冲区,Int32 计数,布尔异步,布尔 readingNotifications) 在 Npgsql.Internal.NpgsqlReadBuffer.g__EnsureLong|41_0(NpgsqlReadBuffer 缓冲区,Int32 计数,布尔异步,布尔 readingNotifications) 在 Npgsql.Internal.NpgsqlConnector.RawOpen(SslMode sslMode,NpgsqlTimeout 超时,布尔异步,CancellationToken cancellationToken,布尔 isFirstAttempt) 在 Npgsql.Internal.NpgsqlConnector.g__OpenCore|191_1(NpgsqlConnector conn,SslMode sslMode,NpgsqlTimeout 超时,布尔异步,CancellationToken cancellationToken,布尔 isFirstAttempt) 在 Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout 超时,布尔异步,CancellationToken cancellationToken) 在 Npgsql.ConnectorPool.OpenNewConnector(NpgsqlConnection conn,NpgsqlTimeout 超时,布尔异步,CancellationToken cancellationToken) 在 Npgsql.ConnectorPool.g__RentAsync|28_0(NpgsqlConnection conn,NpgsqlTimeout 超时,布尔异步,CancellationToken cancellationToken) 在 Npgsql.NpgsqlConnection.g__OpenAsync|45_0(布尔异步,CancellationToken cancellationToken) 在 Npgsql.NpgsqlConnection.Open() 在 Npgsql.EntityFrameworkCore.PostgreSQL.Scaffolding.Internal.NpgsqlDatabaseModelFactory.Create(DbConnection dbConnection,DatabaseModelFactoryOptions 选项) 在 Npgsql.EntityFrameworkCore.PostgreSQL.Scaffolding.Internal.NpgsqlDatabaseModelFactory.Create(字符串连接字符串,DatabaseModelFactoryOptions 选项) 在 Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerScaffolder.ScaffoldModel(字符串连接字符串、DatabaseModelFactoryOptions 数据库选项、ModelReverseEngineerOptions 模型选项、ModelCodeGenerationOptions codeOptions) 在 Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(字符串提供程序,字符串 connectionString,字符串 outputDir,字符串 outputContextDir,字符串 dbContextClassName,IEnumerable
1 schemas, IEnumerable1 表,字符串 modelNamespace,字符串 contextNamespace,布尔 useDataAnnotations,布尔 overwriteFiles,布尔 useDatabaseNames,布尔 suppressOnConfiguring,布尔 noPluralize) 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(字符串提供程序、字符串 connectionString、字符串 outputDir、字符串 outputDbContextDir、字符串 dbContextClassName、IEnumerable1 schemaFilters, IEnumerable1 tableFilters、字符串 modelNamespace、字符串 contextNamespace、布尔 useDataAnnotations、布尔 overwriteFiles、布尔 useDatabaseNames、布尔 suppressOnConfiguring , 布尔值 noPluarlize) 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_0.<.ctor>b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(动作动作)我在
6.0.7版本上使用Npgsql.EntityFrameworkCore.PostgreSQL谁能帮忙?我已经搜索过,但找不到解决此问题的方法
【问题讨论】:
-
看起来像是连接到数据库的问题。你确定你的连接字符串没问题吗?
标签: c# postgresql entity-framework-core npgsql