0

我正在努力找到这个问题的简单答案,希望有人可以提供帮助吗?

我有一个首先使用 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 之外读取 ModelMetaData 还是我在错误的树上吠叫?

感谢您花时间阅读。

4

1 回答 1

0

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

var metaData = ModelMetadataProviders
    .Current.GetMetadataForProperty(null, objType, propertyName);
于 2013-10-22T08:32:23.853 回答