我想使用自定义开发的“Auditable”属性来跟踪我的“POCO”对象。必须跟踪具有audit-able属性的对象的CRUD操作。为此,我覆盖了对象上下文的保存更改方法。但我不确定如何在保存方法中访问每个实体对象的属性值(是否存在属性)。任何帮助表示赞赏...
我正在使用EF 6.0。
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using Nido.Common.Utilities.Attributes;
namespace DemoTest.Bll.Models
{
/// <summary>
/// Created by MAS IT
/// </summary>
[Auditable]
public class Address : BaseObject
{
// Your code here
}
}
ObjectContext保存方法是这个..
private void CurrentObjectContext_SavingChanges(object sender, EventArgs e)
{
// if auditable then
// Tracking code comes here
}
答案 0 :(得分:1)
取决于您的属性类实际上是AuditableAttribute
还是仅Auditable
您需要使用System.Linq,然后您可以执行以下任一操作:
if (sender !=null &&
sender.GetType().GetCustomAttributes().OfType<AuditableAttribute>().Any())
或
if (sender !=null &&
sender.GetType().GetCustomAttributes().OfType<Auditable>().Any())