为了找到在Razor上显示日期的最佳方式只是一个短暂的日期,我偶然发现了数据注释,他们似乎很好能够将额外的元数据附加到我的各种模型。
这里有一个问题:我正在使用由Fluent NHibernate配置的NHibernate,并且NHibernate似乎没有将属性传递给它生成的代理类。
有没有办法强制它复制属性,或者我不应该直接在视图中使用我的模型类,而是转换模型(T4模板?)
答案 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从一个翻译到另一个。