我正在开发 ASP.NET MVC 应用,设计域模型,使用(测试)新的 EF Code First 功能。
我有一个可能有也可能没有截止日期的事件实体,处理它的最佳方法是什么?
1 个属性:
public DateTime? Deadline {get; set;}
and check vs null before using
或
2 个属性:
public DateTime Deadline {get; set;}
public bool HasDeadline {get; set;}
起初我想到了第一个选项,但后来我开始考虑也许第二个选项对于数据库来说会更好......
这方面有什么最佳实践吗?
最佳答案
我会选择第一个选项。毕竟,它正是第二个的封装形式。
封装清楚地表明您只有一个逻辑 值(或没有)。在第二种形式中,您可以将属性视为完全独立的,而这在逻辑上并非如此。
就数据库而言,我希望第一个表单也一样简单……假设您在数据库中会有一个可为空的 DATETIME 字段,不是吗?它应该直接映射。
关于c# - 什么是更好的设计/实践 : Nullable property or 1 value property and 1 bool "has" property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3697989/