Postgresql Postgres实体框架生成器

Postgresql Postgres实体框架生成器,postgresql,asp.net-core,.net-core,entity-framework-core,Postgresql,Asp.net Core,.net Core,Entity Framework Core,我在报纸上找到一篇好文章。我已经阅读并使用SQLServer数据库成功地测试了它。现在,我想将数据库引擎更改为PostgreSQL,我已经将数据库从SQL Server迁移到了PostgreSQL 但是,当我执行时: efg generate -c ""Host=localhost;Username=admin;Database=dbTest;Password=admin;Persist Security Info=True"" 控制台向我显示: 17:18:04 W Option file

我在报纸上找到一篇好文章。我已经阅读并使用SQLServer数据库成功地测试了它。现在,我想将数据库引擎更改为PostgreSQL,我已经将数据库从SQL Server迁移到了PostgreSQL

但是,当我执行时:

efg generate -c ""Host=localhost;Username=admin;Database=dbTest;Password=admin;Persist Security Info=True""
控制台向我显示:

17:18:04 W Option file not found: generation.yml
17:18:04 I Using default options
17:18:04 D Creating database model factory for: SqlServer
17:18:04 I Loading database model ...
17:18:04 F Host terminated unexpectedly
System.ArgumentException: Keyword not supported: 'host'.
   at Microsoft.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms, Boolean firstKey)
   at Microsoft.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms)
   at Microsoft.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
   at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
   at Microsoft.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key)
   at Microsoft.Data.SqlClient.SqlConnection.set_ConnectionString(String value)
   at Microsoft.Data.SqlClient.SqlConnection..ctor(String connectionString)
   at Microsoft.EntityFrameworkCore.SqlServer.Scaffolding.Internal.SqlServerDatabaseModelFactory.Create(String connectionString, DatabaseModelFactoryOptions options)
   at EntityFrameworkCore.Generator.CodeGenerator.GetDatabaseModel(IDatabaseModelFactory factory) in C:\projects\entityframeworkcore-generator\src\EntityFrameworkCore.Generator.Core\CodeGenerator.cs:line 371
   at EntityFrameworkCore.Generator.CodeGenerator.Generate(GeneratorOptions options) in C:\projects\entityframeworkcore-generator\src\EntityFrameworkCore.Generator.Core\CodeGenerator.cs:line 40
   at EntityFrameworkCore.Generator.GenerateCommand.OnExecute(CommandLineApplication application) in C:\projects\entityframeworkcore-generator\src\EntityFrameworkCore.Generator\GenerateCommand.cs:line 76
--- End of stack trace from previous location where exception was thrown ---
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.Invoke(MethodInfo method, Object instance, Object[] arguments)
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context, CancellationToken cancellationToken)
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<<Apply>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(String[] args, CancellationToken cancellationToken)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
   at EntityFrameworkCore.Generator.Program.Main(String[] args) in C:\projects\entityframeworkcore-generator\src\EntityFrameworkCore.Generator\Program.cs:line 50
17:18:04未找到选项文件:generation.yml
17:18:04 I使用默认选项
17:18:04 D正在为创建数据库模型工厂:SqlServer
17:18:04我正在加载数据库模型。。。
17:18:04 F主机意外终止
System.ArgumentException:不支持关键字:“主机”。
位于Microsoft.Data.Common.DbConnectionOptions.ParseInternal(字典'2 parsetable,字符串connectionString,布尔构建链,字典'2同义词,布尔第一键)
位于Microsoft.Data.Common.DbConnectionOptions..ctor(字符串连接字符串,字典`2同义词)
位于Microsoft.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
位于Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString,DbConnectionOptions previous)
位于Microsoft.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey、DbConnectionPoolGroupOptions、DbConnectionOptions和userConnectionOptions)
在Microsoft.Data.SqlClient.SqlConnection.ConnectionString_集合(DbConnectionPoolKey)
位于Microsoft.Data.SqlClient.SqlConnection.set_ConnectionString(字符串值)
在Microsoft.Data.SqlClient.SqlConnection..ctor(字符串连接字符串)
位于Microsoft.EntityFrameworkCore.SqlServer.Scaffolding.Internal.SqlServerDatabaseModelFactory.Create(字符串连接字符串,DatabaseModelFactoryOptions)
在C:\projects\EntityFrameworkCore Generator\src\EntityFrameworkCore.Generator.Core\CodeGenerator.cs中的EntityFrameworkCore.GetDatabaseModel(IDatabaseModelFactory工厂)处:第371行
在C:\projects\EntityFrameworkCore Generator\src\EntityFrameworkCore.Generator.Core\CodeGenerator.cs中的EntityFrameworkCore.Generator(GeneratorOptions)处:第40行
在C:\projects\EntityFrameworkCore Generator\src\EntityFrameworkCore.Generator\GenerateCommand.OneExecute(CommandLineApplication应用程序)中的EntityFrameworkCore.Generator.GenerateCommand.OneExecute(命令行应用程序):第76行
---来自引发异常的上一个位置的堆栈结束跟踪---
在McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.Invoke(MethodInfo方法、对象实例、对象[]参数)
位于McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OneExecute(ConventionContext上下文,CancellationToken CancellationToken)
在McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.c_uDisplayClass0_0.d.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
位于McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(字符串[]args,CancellationToken CancellationToken)
位于McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute(字符串[]args)
在C:\projects\EntityFrameworkCore Generator\src\EntityFrameworkCore.Generator\Program.cs中的EntityFrameworkCore.Generator.Program.Main(字符串[]args)处:第50行
我想我丢失了一些软件包。但是,我不确定是什么


非常感谢

我找到了解决方案,并决定将其发布在这里,因为它可能会在将来帮助其他人

实际上,如果我们不提及任何“provider”参数,
efg
命令将使用SqlServer提供程序。因此,我将命令修改为:

efg generate -c "Host=localhost;Username=admin;Database=dbTest;Password=admin;Persist Security Info=True" -p PostgreSQL