我使用MVC 5和Entity Framework(6.0.2),我的一个类生成为:
public partial class Proc_Result
{
public int Id { get; set; }
public string RegistrationNumber { get; set; }
public string Name { get; set; }
public Nullable<System.DateTime> DateOfEntry { get; set; }
public string Drawer { get; set; }
}
我想拥有它以便DateOfEntry具有以下数据注释: [DisplayFormat(DataFormatString =&#34; {0:dd / MM / yyyy}&#34;,ApplyFormatInEditMode = true)]
除了能够将[DisplayName(..)]添加到其他字段外,这可能吗?我知道我可以手动更改生成的cs文件,但是每当我从db更新时,我都会丢失这些更改。否则我可以构建我自己的模型并映射它,但想看看是否还有其他方法。
我考虑创建另一个名为Proc_Result的分部类,但是如果我只包含相同的DateOfEntry,它会覆盖另一个吗?
答案 0 :(得分:1)
我在这里找到了解决方案: http://ryanhayes.net/blog/data-annotations-for-entity-framework-4-entities-as-an-mvc-model/ 基本上我必须这样做:
[MetadataType(typeof(Proc_ResultMetaData))]
public partial class Proc_Result
{
// Note this class has nothing in it. It's just here to add the class-level attribute.
}
public partial class Proc_ResultMetaData
{
public int Id { get; set; }
[DisplayName("Registeration Number")]
public string RegistrationNumber { get; set; }
public string Name { get; set; }
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> DateOfEntry { get; set; }
public string Drawer { get; set; }
}
这让它发挥作用。