需要映射实体中的字段

时间:2009-10-06 08:45:38

标签: asp.net-mvc nhibernate validation fluent-nhibernate nhibernate-mapping

我不确定我的问题是否可以以一种或多或少的方式解决。

有一个类人物已将'hasOne'映射为参与者。

此人有生日,但此人不需要此字段。但是,如果我想将参与者添加到那么,则需要生日。

如何摆脱这个

  • 将生日信息移动到参与者对象 - >这就是我现在的做法,但我认为将人员相关信息转移到其他对象不能是最终解决方案
  • 在两个类中映射属性 - >如何在需要时告知验证器,何时不需要?
  • 合并两个对象 - >现在不允许

也许有人有更好的主意,我使用nHibernate Validator并在那里我在类中配置验证(信息'birthday'不是两者的属性 - 也许这将是一个解决方案?)

1 个答案:

答案 0 :(得分:0)

如您所述,使用NHibernate验证器属性。这将在参与者课程中。这对你有用吗?它在基类上是可选的,并且如您所见可以为空(在覆盖时不能更改类型)

[NotNull, NotEmpty]
public override DateTime? Birthday { get; set; }

这仍然可以在DB中保持字段可空,但是如果没有每个类实现的表而不是每个层次结构流程实现的类,则不会看到这种情况。您的域验证将在那里进行保护。