代码之家  ›  专栏  ›  技术社区  ›  Scott Baker

如何将空值从数据库转换到DbSet并返回到实体框架中?

  •  1
  • Scott Baker  · 技术社区  · 5 年前

    我有一个数据库,用来存储nullable ThingType? 枚举为整数值:

    public enum ThingType
    {
        Good = 0,
        Bad = 1,
        Annoying = 2,
    }
    

    ThingType ,定义如下:

    public enum ThingType
    {
        NotSpecified = -1,
        Good = 0,
        Bad = 1,
        Annoying = 2,
    }
    

    在EF中实现这种翻译而不更改数据库的最佳方法是什么 null 行值转换为 ThingType.NotSpecified 无效的 价值?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Olivier Jacot-Descombes    5 年前

    使用第二个属性

    // Map this one to DB
    public ThingType? ThingTypeDb
    {
        get { return ThingType == ThingType.NotSpecified ? (ThingType?)null : ThingType; }
        set { ThingType = value == null ? ThingType.NotSpecified : value.Value; }
    }
    
    // Don't map this one. Use it in your logic
    public ThingType ThingType { get; set; }