我很难找到这个问题的简单答案,希望那里有人可以提供帮助吗?
我有一个系统首先使用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,还是我咆哮错误的树?
感谢您花时间阅读。
答案 0 :(得分:0)
我在stackoverflow here上找到了指针,但我需要稍微不同的
var metaData = ModelMetadataProviders
.Current.GetMetadataForProperty(null, objType, propertyName);