我在我的所有域中使用字符串类型作为我的 Id 属性。例如:
public class Person {
property string Id { get; set; }
// ... more properties
}
这里没有技巧。null
代表一个“无价值”的值,当一个新的 Person 被创建并且在它被持久化之前,Id
将保持null
。
现在有一个讨论来增强“无值”空间并说null
,空字符串和空白字符串都是“无值”值。
即检查实体是否是新的而不是做:if (person.Id == null)
它将成为if (string.IsNullOrWhiteSpace(person.Id))
在我看来,这是一种气味或违反设计原则的行为,但我不知道是哪一种。
问题:这个决定违反了哪个(如果有的话)设计原则(决定允许不仅仅是null
代表无价值的价值)?
(我认为它应该类似于奥卡姆剃刀原理或熵或 KISS,我只是不确定)