.net 不可为null的枚举和具有null值的数据的设计问题
在我的web应用程序中,我使用带有枚举属性的模型。例如:.net 不可为null的枚举和具有null值的数据的设计问题,.net,oop,design-patterns,database-design,model,.net,Oop,Design Patterns,Database Design,Model,在我的web应用程序中,我使用带有枚举属性的模型。例如: public class SomeObject { public Guid ID { get; set; } public string Name { get; set; } public Color Color { get; set; } } public enum Color { blue, red } 颜色是必填字段形式。基于该模型使用EF Core创建了一个颜色列不为null的表 但是,
public class SomeObject
{
public Guid ID { get; set; }
public string Name { get; set; }
public Color Color { get; set; }
}
public enum Color
{
blue,
red
}
颜色是必填字段形式。基于该模型使用EF Core创建了一个颜色列不为null的表
但是,我尝试导入到表中的一些历史数据不包含颜色的空值
从设计的角度来看,什么是更好的解决方案:
我不喜欢这些选项中的任何一个,但就设计而言,哪一个是最好的呢?在
Color
列中带有null
的记录有效地代表了未知颜色的对象。因此,显然要做的事情是向enumColor
添加一个Unknown
值。然后更改前端以允许显示这些对象,但不使用设置为“未知”的颜色保存。在color
列中null
的记录有效地表示未知颜色的对象。因此,显然要做的事情是向enumColor
添加一个Unknown
值。然后更改前端,以允许显示这些对象,但不使用设置为“未知”的颜色保存这些对象。默认值是最小的侵入性值,因为它既不更改模型也不更改枚举;但最终这个问题是基于观点的,答案会根据具体情况而有所不同。默认值是入侵性最小的,因为它既不会更改模型也不会更改枚举;但归根结底,这个问题是基于意见的,答案会因人而异。