繁体   English   中英

使用实体框架的 Model 上的 DisplayName

[英]DisplayName on Model that use Entity Framework

我有一个看起来像这样的代码:

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

问题是Entity Framework生成的model class中添加了属性Display和Required。 我知道我可以使用 Partial 添加功能,但是如何向 class 添加属性,该属性将使用 ORM 进行擦除和更新?

根据我的经验,数据库中的模型很少与 web 页面中使用的模型相同。 你总是需要一些改变。 因此使用ViewModel 另一个好处是,如果实体 model 更改,所有使用 ViewModel 的 web 页面都不会中断。

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

让自己熟悉映射器(如automapper ),然后将属性放在 ViewModel 上。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM