小编use*_*269的帖子

通过使用EF 4.1 DBContext为SaveChanges分配一个事件处理程序来实现OnContextCreated以进行审计

我尝试了很多不同的方法并查看了不同的帖子,但仍未找到这种审核方式的解决方案.下面是我的DBContext模板文件.我通过添加OnContextCreated()partial方法来定制它,并将SavingChanges事件分配给我的OnSavingChanges事件处理程序.

namespace ARSystem.Models
{
    public partial class ARSEntities : ObjectContext
    {
        public ARSEntities()
            : base("name=ARSEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public string UserName { get; set; }
        List<DBAudit> auditTrailList = new List<DBAudit>();

        public enum AuditActions
        {
            I,
            U,
            D
        }

        partial void OnContextCreated()
        {
            this.SavingChanges += new EventHandler(OnSavingChanges);
        }

        public void OnSavingChanges(object sender, EventArgs e)
        {
            IEnumerable<ObjectStateEntry> changes = this.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified);
            foreach (ObjectStateEntry stateEntryEntity …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework edmx-designer

4
推荐指数
1
解决办法
6561
查看次数