简体   繁体   English

如何将 EnumToNumberConverter 用于可空枚举

[英]how to use EnumToNumberConverter for nullable enum

I have a nullable type Enum property in my entity with name Status.我的实体中有一个可为空类型的 Enum 属性,名称为 Status。

         public class MyType
         {
           [Column("StatusId")]
           public Nullable<AccountPaymentType> Status{ get; set; }
         }

         modelBuilder
        .Entity<MyType>()
        .Property(e => e.Status)
        .HasConversion(new EnumToNumberConverter<Enum.Status, int>());

The converter fails if DB return null.如果 DB 返回 null,则转换器失败。 How can I support it?我怎样才能支持它?

I saw that there is constructor in class EnumToNumberConverter as我看到类 EnumToNumberConverter 中有构造函数作为

 public EnumToNumberConverter([CanBeNullAttribute] ConverterMappingHints mappingHints = null);

But I dont know how to use it.但我不知道如何使用它。

You can try this:你可以试试这个:

            public class MyType
             {
               [Column("StatusId")]
               public Nullable<AccountPaymentType> Status{ get; set; }
             }

             modelBuilder
            .Entity<MyType>()
            .Property(e => e.Status)
            .HasDefaultValue(AccountPaymentType.[YOUR_DEFAULT_VALUE])
            .HasConversion(new EnumToNumberConverter<Enum.Status, int>());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM