使用实体框架的模型的DisplayName

本文关键字:模型 DisplayName 框架 实体 | 更新日期: 2023-09-27 17:54:59

我有一个像这样的代码:

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

问题是在Entity Framework生成的模型类中添加了属性Display和Required。我知道我可以添加功能与部分,但我怎么能添加属性到一个类,将擦除和更新与ORM?

使用实体框架的模型的DisplayName

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

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

让你自己熟悉一个映射器(比如automapper),并把属性放在ViewModel上。

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

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

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