我尝试使用Fluent API添加配置如下:
public class PeriodTypeMappings: EntityTypeConfiguration<PeriodType>
{
public PeriodTypeMappings()
{
this.HasKey(p => p.PeriodTypeId);
this.Property(p => p.PeriodTypeName).HasMaxLength(value: 25);
this.HasRequired(p => p.PeriodTypeName);
this.HasRequired(p => p.NumberOfPartitions);//compile error
}
}
但我得到以下例外:
“short”类型必须是引用类型才能将其用作 泛型类型或方法中的参数'TTargetEntity' 'EntityTypeConfiguration.HasRequired(表达式&GT)'
在this.HasRequired(p => p.NumberOfPartitions);
类型为short的最后一行NumberOfPartitions
发生了异常。
为什么会发生这种情况以及如何解决这个问题,我试着说这个字段是必需的。
答案 0 :(得分:2)
HasRequired 用于映射导航属性。您要找的是 IsRequired 。但是,如果您的属性不可为空,则默认情况下是必需的。您的映射应如下所示:
this.HasKey(p => p.PeriodTypeId);
this.Property(p => p.PeriodTypeName)
.IsRequired()
.HasMaxLength(25);
this.Property(p => p.NumberOfPartitions)
.IsRequired();