我目前正在编写一个财务应用程序,我们有一个非常标准的客户表。它由许多必填字段和一些可选字段组成,例如 Cell/Fax 等。我使用 NHibernate 作为 ORM 并且所有映射都正确。它已经起作用了。
我只是想知道,我如何在代码中“表达”一个字段不为空而不注释?我有记录这个的 hbm.xml 文件,但是对于这样的事情来看它们有点尴尬。
想到的另一件事是我不希望存储库在我的逻辑上抛出 NHibernate 异常,所以也许我应该在控制器中进行验证。不过,我怎样才能让 POCO 代码表达某些字段可以为空?
如您所见,我希望蜂窝和传真是可选的,而电话是必需的。它们都只是复合映射,所以映射文件只是指定每个元素的单个元素必须不为空,但我讨厌一直执行 Person.Cellular != null 检查以避免出现 NullReferenceException。