gpt4 book ai didi

c# - 什么是更好的设计/实践 : Nullable property or 1 value property and 1 bool "has" property?

转载 作者:太空狗 更新时间:2023-10-29 20:55:39 29 4
gpt4 key购买 nike

我正在开发 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com