使用Entity Framework的Model上的DisplayName

Pat*_*ins 6 c# asp.net asp.net-mvc asp.net-mvc-3

我有一个代码如下:

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

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

jga*_*fin 8

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

至于安全性,如果你有一个public ActionResult Save(MyEntityModel model)可能导致安全漏洞,因为用户可以弄清楚如何张贴值不应该被改变性质(如Role,Status,IsAdmin或其他).

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