我正在努力找到这个问题的简单答案,希望有人可以提供帮助吗?
我有一个首先使用 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 还是我在错误的树上吠叫?
感谢您花时间阅读。