在ASP.NET Core中,我有以下枚举:
public enum MerchantStatus : byte
{
Inactive = 0,
Active = 1
}
型号:
public class Merchant : AuditableBaseEntity
{
[Required(ErrorMessage = "Merchant Name is required")]
[Column(TypeName = "Varchar")]
[StringLength(100)]
public string MerchantName { get; set; }
[Required(ErrorMessage = "Account Number is required")]
[Column(TypeName = "Varchar")]
[StringLength(50)]
public string AccountNumber { get; set; }
public MerchantStatus? MerchantStatus { get; set; } // 0=Inactive, 1=Active Active/Inactive --default value
[Display(Name = "Charge Mode")]
public ChargeMode? ChargeMode { get; set; } //0=Fixed Or 1=Percentage
}
modelBuilder.Entity<Merchant>(entity =>
{
entity.Property(m => m.Id).ValueGeneratedOnAdd();
entity.Property(m => m.MerchantStatus).HasDefaultValue(1);
});
我得到了这个错误:
无法对实体类型"Merchant"中类型为"System.Nullable"的属性"MerchantStatus"设置类型为"System.Int32"的默认值"1"。
如何解决此问题?
Thaanks
通过替换来强制转换整数
.HasDefaultValue(1);
与.HasDefaultValue((MerchantStatus)1);
或更好-使用定义的枚举.HasDefaultValue(MerchantStatus.Active)