すべてのドメイン オブジェクトの 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 に似たものであるべきだと思いますが、よくわかりません)