ASP.NET Core - 无法在属性“MerchantStatus”上设置“System.Int32”类型的默认值“1”

Olu*_*nga 2 c# entity-framework asp.net-core

在 ASP.NET Core 中,我有这个枚举:

    public enum MerchantStatus : byte
    {
        Inactive = 0,
        Active = 1
    }
Run Code Online (Sandbox Code Playgroud)

模型:

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

        });
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

无法在实体类型“Merchant”中类型“System.Nullable`1[Helpers.EnumList+MerchantStatus]”的属性“MerchantStatus”上设置类型“System.Int32”的默认值“1”。

我该如何解决这个问题?

谢克斯

fub*_*ubo 5

通过替换来转换你的整数

.HasDefaultValue(1);.HasDefaultValue((MerchantStatus)1);

或更好 - 使用定义的枚举.HasDefaultValue(MerchantStatus.Active)