使用实体框架的模型的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?
根据我的经验,数据库中的模型很少与网页中使用的模型相同。你总是需要一些改变。因此使用ViewModel
s。另一个好处是,如果实体模型改变了,所有使用ViewModel的网页都不会中断。
至于安全性,如果你有一个public ActionResult Save(MyEntityModel model)
可能会导致安全漏洞,因为用户可能会发现如何将值发布到不应该更改的属性(如Role
, Status
, IsAdmin
或其他)。
让你自己熟悉一个映射器(比如automapper),并把属性放在ViewModel上。
您是否考虑过使用T4模板来修改生成的代码?
http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx在处理生成的代码时,我倾向于将T4模板与部分类结合使用。