この質問に対する簡単な答えを見つけるのに苦労しています。うまくいけば、誰かが助けてくれますか?
最初に 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");
変更をログに記録するかどうかを決定します。
明らかに、このコードはビューから取得された (そして変更された!) ため、失敗します。
私の質問はです。ModelMetaData を ViewContext の外で読み取ることはできますか、それとも間違ったツリーを鳴らしていますか?
お読みいただきありがとうございます。