在NHibernate中使用DataAnnotations

时间:2011-02-04 04:42:39

标签: nhibernate fluent-nhibernate data-annotations

为了找到在Razor上显示日期的最佳方式只是一个短暂的日期,我偶然发现了数据注释,他们似乎很好能够将额外的元数据附加到我的各种模型。

这里有一个问题:我正在使用由Fluent NHibernate配置的NHibernate,并且NHibernate似乎没有将属性传递给它生成的代理类。

有没有办法强制它复制属性,或者我不应该直接在视图中使用我的模型类,而是转换模型(T4模板?)

2 个答案:

答案 0 :(得分:2)

您使用的是部分类的NHibernate模型吗?如果是这样,您可以创建一个单独的元数据类来使用数据注释来装饰它们。我最近遇到了类似的问题,得到了我的问题here的答案。基本上,您创建一个与生成的NHibernate类同名的部分类。然后,您创建一个与该类具有相同字段的元数据类,适当地修饰它们,然后将该元数据类应用于您创建的分部类,这样即使您重新生成类,您的分部类也不会,并将保留您的DataAnnotations around。

[MetadataType(typeof(PersonMetadata))]
public partial class Person {

}

public class PersonMetadata {

   [Required]
   [Display(Name = "First Name")]
   public string FirstName;
}

来源:Austin Lamb来自this answer

答案 1 :(得分:2)

我建议您将查看域模型(nhibernate)的类分开。使用automapper从一个翻译到另一个。