Postgresql .Net Core 3.0 Npgsql迁移问题

Postgresql .Net Core 3.0 Npgsql迁移问题,postgresql,asp.net-core,entity-framework-core,npgsql,asp.net-core-3.0,Postgresql,Asp.net Core,Entity Framework Core,Npgsql,Asp.net Core 3.0,我有一个使用NetTopologySuite的.Net Core 3.0 Api,它可以在SqlServer数据库上完美运行,但我需要更改为Postgresql,当然我更改了Postgresql配置的Startup.cs(添加了NetTopologySuite),并在Postgresql数据库上安装了Postgis扩展,问题是,当我想迁移时,它会抛出一个系统。InvalidOperationException异常,我甚至尝试生成sql脚本来手动执行此操作。 我没有在实体配置中使用HasComme

我有一个使用NetTopologySuite的.Net Core 3.0 Api,它可以在SqlServer数据库上完美运行,但我需要更改为Postgresql,当然我更改了Postgresql配置的Startup.cs(添加了NetTopologySuite),并在Postgresql数据库上安装了Postgis扩展,问题是,当我想迁移时,它会抛出一个系统。InvalidOperationException异常,我甚至尝试生成sql脚本来手动执行此操作。
我没有在实体配置中使用
HasComment

例外情况:

info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
      Entity Framework Core 3.0.0 initialized 'AppDbContext' using provider 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: using NetTopologySuite
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.GetColumnType(String schema, String table, String name, ColumnOperation operation, IModel model)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.NpgsqlMigrationsSqlGenerator.ColumnDefinition(String schema, String table, String name, ColumnOperation operation, IModel model, MigrationCommandListBuilder builder)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.ColumnDefinition(AddColumnOperation operation, IModel model, MigrationCommandListBuilder builder)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.CreateTableColumns(CreateTableOperation operation, IModel model, MigrationCommandListBuilder builder)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.NpgsqlMigrationsSqlGenerator.Generate(CreateTableOperation operation, IModel model, MigrationCommandListBuilder builder, Boolean terminate)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.<>c.<.cctor>b__71_11(MigrationsSqlGenerator g, MigrationOperation o, IModel m, MigrationCommandListBuilder b)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.NpgsqlMigrationsSqlGenerator.Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(IReadOnlyList`1 operations, IModel model)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateUpSql(Migration migration)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateScript(String fromMigration, String toMigration, Boolean idempotent)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.ScriptMigration(String fromMigration, String toMigration, Boolean idempotent, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScriptMigrationImpl(String fromMigration, String toMigration, Boolean idempotent, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScriptMigration.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Object reference not set to an instance of an object.
info:Microsoft.EntityFrameworkCore.Infrastructure[10403]
实体框架核心3.0.0使用提供程序“Npgsql.EntityFrameworkCore.PostgreSQL”初始化了“AppDbContext”,选项为:使用NetTopologySuite
System.NullReferenceException:对象引用未设置为对象的实例。
位于Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.GetColumnType(字符串模式、字符串表、字符串名称、ColumnOperation操作、IModel模型)
位于Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.npgsqlMigrationSqlGenerator.ColumnDefinition(字符串模式、字符串表、字符串名称、ColumnOperation操作、IModel模型、MigrationCommandListBuilder生成器)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.ColumnDefinition(AddColumnOperation操作、IModel模型、MigrationCommandListBuilder生成器)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationSqlGenerator.CreateTableColumns(CreateTableOperation操作、IModel模型、MigrationCommandListBuilder生成器)
位于Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.npgsqlMigrationSqlGenerator.Generate(CreateTableOperation操作、IModel模型、MigrationCommandListBuilder构建器、布尔终止)
在Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.c.b_uu71_u11(MigrationSqlGenerator g、MigrationOperation o、IModel m、MigrationCommandListBuilder b)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(MigrationOperation操作、IModel模型、MigrationCommandListBuilder生成器)
位于Npgsql.EntityFrameworkCore.PostgreSQL.Migrations.npgsqlMigrationSqlGenerator.Generate(MigrationOperation操作、IModel模型、MigrationCommandListBuilder)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(IReadOnlyList`1操作,IModel模型)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateUpSql(迁移)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateScript(String fromMigration,String to Migration,布尔幂等元)
位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationOperations.ScriptMigration(String fromMigration、String toMigration、布尔幂等元、String contextType)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScriptMigrationImpl(字符串fromMigration、字符串到迁移、布尔幂等元、字符串contextType)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScriptMigration.c__DisplayClass0_0.b_0()中
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.c__DisplayClass3_0`1.b__0()中
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作)
对象引用未设置为对象的实例。
Csproj文件:

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Bogus" Version="28.4.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Version="3.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.0.0" />
    <PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.0.0" />
    <PackageReference Include="NetTopologySuite" Version="2.0.0" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.0.0" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="3.0.0" />
  </ItemGroup>

netcoreapp3.0
全部的
运行时间;建设;本地人;内容文件;分析仪;可传递的
即使尝试添加迁移,我也会遇到这个异常(在SqlServer上工作得非常好)

Microsoft.EntityFrameworkCore.Infrastructure[10403]
实体框架核心3.0.0使用提供程序“Npgsql.EntityFrameworkCore.PostgreSQL”初始化了“AppDbContext”,选项为:使用NetTopologySuite
System.InvalidOperationException:找不到CLR类型为“bool”的属性“LocalizerApp.Models.ApplicationUser.TwoFactorEnabled”与关系类型的映射。
位于Microsoft.EntityFrameworkCore.Storage.RelationalTypeMappingSourceExtensions.GetMapping(IRelationalTypeMappingSource typeMappingSource,IProperty属性)
在Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDifferent.Diff(IProperty源、IProperty目标、DiffContext DiffContext)+MoveNext()中
在Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.DiffCollection[T](IEnumerable`1源、IEnumerable`1目标、DiffContext DiffContext、Func`4 diff、Func`3添加、Func`3删除、Func`4[]谓词)+MoveNext()
在System.Linq.Enumerable.Concaterator`1.MoveNext()中
在Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDifference.Diff(TableMapping源、TableMapping目标、DiffContext DiffContext)+MoveNext()中
在Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.DiffCollection[T](IEnumerable`1源、IEnumerable`1目标、DiffContext DiffContext、Func`4 diff、Func`3添加、Func`3删除、Func`4[]谓词)+MoveNext()
在System.Linq.Enumerable.Concaterator`1.MoveNext()中
在Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.Sort(IEnumerable`1操作,DiffContext)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationModelDifference.GetDifferences(IModel源,IModel目标)
位于Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.ScaffoldMigration(字符串迁移名称、字符串根命名空间、字符串子命名空间、字符串语言)
位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(字符串名称、字符串输出目录、字符串上下文类型)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(字符串名称、字符串输出目录、字符串上下文类型)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.c__DisplayClass0_0.b_0()中
位于Microsoft.EntityFrameworkCore.Design.Op
Microsoft.EntityFrameworkCore.Infrastructure[10403]
      Entity Framework Core 3.0.0 initialized 'AppDbContext' using provider 'Npgsql.EntityFrameworkCore.PostgreSQL' with options: using NetTopologySuite 
System.InvalidOperationException: No mapping to a relational type can be found for property 'LocalizerApp.Models.ApplicationUser.TwoFactorEnabled' with the CLR type 'bool'.
   at Microsoft.EntityFrameworkCore.Storage.RelationalTypeMappingSourceExtensions.GetMapping(IRelationalTypeMappingSource typeMappingSource, IProperty property)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Diff(IProperty source, IProperty target, DiffContext diffContext)+MoveNext()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.DiffCollection[T](IEnumerable`1 sources, IEnumerable`1 targets, DiffContext diffContext, Func`4 diff, Func`3 add, Func`3 remove, Func`4[] predicates)+MoveNext()
   at System.Linq.Enumerable.ConcatIterator`1.MoveNext()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Diff(TableMapping source, TableMapping target, DiffContext diffContext)+MoveNext()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.DiffCollection[T](IEnumerable`1 sources, IEnumerable`1 targets, DiffContext diffContext, Func`4 diff, Func`3 add, Func`3 remove, Func`4[] predicates)+MoveNext()
   at System.Linq.Enumerable.ConcatIterator`1.MoveNext()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.Sort(IEnumerable`1 operations, DiffContext diffContext)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationsModelDiffer.GetDifferences(IModel source, IModel target)
   at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.ScaffoldMigration(String migrationName, String rootNamespace, String subNamespace, String language)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
No mapping to a relational type can be found for property 'LocalizerApp.Models.ApplicationUser.TwoFactorEnabled' with the CLR type 'bool'.