ASP.NET 核心 - 无法在属性'MerchantStatus'上设置类型 'System.Int32' 的默认值'1'



在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)

最新更新