【发布时间】:2017-03-03 06:11:42
【问题描述】:
我将如何将[AllowHtml] 属性添加到实体框架生成的类中而不在下次生成代码时覆盖该属性?
我希望简单地允许 CKEditor 使用 Razor 将信息发布回我的 MVC4 应用程序,而不必在我的 Content 实体类上使用 [ValidateReuqest(false)]。
【问题讨论】:
标签: c# .net entity-framework
我将如何将[AllowHtml] 属性添加到实体框架生成的类中而不在下次生成代码时覆盖该属性?
我希望简单地允许 CKEditor 使用 Razor 将信息发布回我的 MVC4 应用程序,而不必在我的 Content 实体类上使用 [ValidateReuqest(false)]。
【问题讨论】:
标签: c# .net entity-framework
您可以使用[MetadataType] 属性将元数据/属性永久添加到您的类,而无需编辑原始类。
对于 Content 类,在您的项目中创建一个新的 cs 文件并将空类替换为:
[MetadataType(typeof(ContentMetadata))]
public partial class Content
{
}
public class ContentMetadata
{
[AllowHtml]
public string ContentHtml { get; set; }
}
部分类名必须与实体类的类名完全匹配,属性必须与实体类中属性的定义完全匹配。
重建后,现在就像您将属性放在实体类中一样工作,但额外的好处是不会每次都被覆盖。
【讨论】:
将新的 C# 部分类文件添加到与您的实体类同名的模型文件夹中,并在那里应用属性。 确保部分类的命名空间匹配,否则它们会被视为不同的类。
您可以使用相同的分部类为其他属性设置其他属性,例如[Display(Name="xxx")]。
【讨论】: