我如何将[AllowHtml]
属性添加到实体框架生成的类中,而下次生成代码时不会覆盖该属性?
我希望简单地允许CKEditor使用Razor将信息发布回我的MVC4应用程序,而无需在我的[ValidateReuqest(false)]
实体类上使用Content
。
答案 0 :(得分:7)
您可以使用[MetadataType]
属性永久地向您的类添加元数据/属性,而无需编辑原始类。
对于类Content
,在项目中创建一个新的cs文件,并将空类替换为:
[MetadataType(typeof(ContentMetadata))]
public partial class Content
{
}
public class ContentMetadata
{
[AllowHtml]
public string ContentHtml { get; set; }
}
部分类名必须与实体类的类名完全匹配,并且该属性必须与实体类中属性的定义完全匹配。
重建之后,现在可以像将属性放在实体类中一样,但是每次都不会被覆盖。“
答案 1 :(得分:0)
将新的C#分部类文件添加到与实体类同名的模型文件夹中,并在其中应用该属性。 确保部分类的名称空间匹配,否则它们被视为不同的类。
您可以使用相同的分部类为其他属性设置其他属性,例如[Display(Name="xxx")]
。