Asp.net mvc 3 在代码中访问DataAnnotationsAdditionalMetadata

Asp.net mvc 3 在代码中访问DataAnnotationsAdditionalMetadata,asp.net-mvc-3,data-annotations,Asp.net Mvc 3,Data Annotations,我正在努力找到这个问题的简单答案,希望有人能帮我 我有一个系统首先使用MVC3代码和EF4.1 我有很多模型,我试图覆盖DbContext.SaveChanges以提供审计功能 某些高容量列应排除在审核之外 我希望我可以像这样使用AdditionalMetadata标签 public class User : IAuditable { [Key] public int UserID { get; set; } public string Name { get; set;

我正在努力找到这个问题的简单答案,希望有人能帮我

我有一个系统首先使用MVC3代码和EF4.1

我有很多模型,我试图覆盖DbContext.SaveChanges以提供审计功能

某些高容量列应排除在审核之外

我希望我可以像这样使用AdditionalMetadata标签

public class User : IAuditable
{
    [Key]
    public int UserID { get; set; }
    public string Name { get; set; }
    public string DisplayName { get; set; }
    [AdditionalMetadata("IgnoreAudit", true)]
    public DateTime? LastActive { get; set; }
}
然后在我的审计代码中使用类似于

bool AuditThis = ModelMetadata
   .FromLambdaExpression(dbEntry.Property(propertyName), null)
   .AdditionalValues("IgnoreAudit");
以确定是否记录更改

显然,这段代码失败了,因为它是从一个视图中获取(并更改了!)

我的问题是。模型元数据是否可以在ViewContext之外读取,或者我是否选错了树


感谢您花时间阅读。

我在stackoverflow上找到了指针,但我需要稍微不同的指针

var metaData = ModelMetadataProviders
    .Current.GetMetadataForProperty(null, objType, propertyName);