我正在尝试将一个使用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:我发现了问题。
谢谢