我有一个数据库,该数据库已用于将可为空的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
并将ThingType.NotSpecified
作为{{1 }}值?
答案 0 :(得分:0)
使用第二个属性
// 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; }