EF Core 2.1中的值生成和CastingConverter的NotSupportedException

时间:2018-06-09 21:30:29

标签: c# .net-core entity-framework-core

自从将应用程序升级到EF Core 2.1后,我开始在下面获得例外。我怀疑它与新的Value Conversions有关(虽然我没有手动实现ValueConverter)。任何想法如何解决?我想维护所提到的Snapshot.Id列的数据库驱动的自动增量值。相同的代码库在EF Core 2.0上运行良好。数据库模式都是通过EF Core代码优先构建的。

如果我能提供任何其他有用的代码,请告诉我。这可能是EF甚至我的EF提供商的错误,但我找不到任何相关问题。

例外:

  

NotSupportedException:属性不支持值生成   'Snapshot.Id',因为它有一个'CastingConverter'转换器   配置。配置属性不使用值生成   'ValueGenerated.Never'或'DatabaseGeneratedOption.None'并指定   而是显示值。

EF模型生成器快照:

modelBuilder.Entity("Data.Entities.Snapshot", b =>
{
    b.Property<int>("Id")
     .ValueGeneratedOnAdd()
     .HasColumnType("MEDIUMINT UNSIGNED");

    ...

    b.HasKey("Id");

    b.ToTable("snapshots");
});

属性配置:

public virtual void Configure(EntityTypeBuilder<TEntity> entityTypeBuilder)
{
    entityTypeBuilder.Property(x => x.Id)
                     .HasColumnType("MEDIUMINT UNSIGNED");
    ...
}

其他信息:

  • 数据库:MariaDB
  • EF Provider:Pomelo.EntityFrameworkCore.MySql 2.1.0-rc1-final

打开GitHub问题:

0 个答案:

没有答案