使用Entity Framework的Model上的DisplayName

我有一个代码如下:

public class MyModel { [Required] [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))] public string name{ get; set; } } 

问题是在生成的Entity Framework模型类中添加了属性Display和Required。 我知道我可以使用Partial添加function但是如何将属性添加到将使用ORM擦除和更新的类?

根据我的经验,数据库中的模型很少与在网页中使用的模型相同。 你总是需要某种改变。 因此使用ViewModel 。 另一个好处是,如果实体模型发生变化,使用ViewModel的所有网页都不会中断。

至于安全性,如果您有public ActionResult Save(MyEntityModel model)可能导致安全漏洞,因为用户可能会弄​​清楚如何将值发布到不应更改的属性(如RoleStatusIsAdmin或其他)。

让自己熟悉mapper(比如automapper ),并将属性放在ViewModel上。

您是否考虑过T4模板来修改生成的代码。

http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx

在处理生成的代码时,我倾向于将T4模板与部分类结合使用。