代码之家  ›  专栏  ›  技术社区  ›  Álvaro García

是否需要明确设置entityc Core 6中不需要属性?

  •  0
  • Álvaro García  · 技术社区  · 4 年前

    我正在尝试将一个使用EntityCore5的项目迁移到EntityCore6。

    我正在使用fluentapi设置配置。

    在NET5项目中,我不需要设置字段是否允许null。我使用以下代码设置字符串属性的值:

            modelBuilder.Entity<Mytable>(entity =>
            {
                entity.HasKey(e => e.MyPk);
    
                entity.Property(e => e.MyPk)
                    .HasMaxLength(50)
                    .IsUnicode(false);
    
                entity.Property(e => e.MyStringProperty)
                    .HasMaxLength(500)
                    .IsUnicode(false);
            });
    

    所以要迁移到Net6,我只想将定义所有这些的类复制到Net6的项目中。

    然而,当我运行net6应用程序时,我得到了这个错误:Data为Null。无法对空值调用此方法或属性。

    我需要设置isrequired(false),在这种情况下它可以工作:

            modelBuilder.Entity<Mytable>(entity =>
            {
                entity.HasKey(e => e.MyPk);
    
                entity.Property(e => e.MyPk)
                    .HasMaxLength(50)
                    .IsUnicode(false);
    
                entity.Property(e => e.MyStringProperty)
                    .IsRequired(false)
                    .HasMaxLength(500)
                    .IsUnicode(false);
            });
    

    我使用的是数据库方法。

    现在在实体核心6中,是否需要始终设置为不需要?

    注意:如果我使用entity core tools 6构建数据库,我可以看到结果与Net5相同,因此不需要设置不需要该字段。

    那么,我不明白哪一个可能是问题。

    注2:我发现了问题。

    谢谢

    0 回复  |  直到 4 年前
    推荐文章