实体框架在更新之前检查当前值

时间:2015-09-16 16:17:05

标签: c# entity-framework

我们有一个CRUD操作的存储库。基本上,如果我们想要执行任何读/写操作,我们可以执行类似

的操作
    using (MemberRepo mRepo = new MemberRepo())
    {
         mRepo.UpdateEntity(member);
         mRepo.Save();
    }

我需要知道的是,在更新数据库之前是否可以知道数据库中的某个列值?例如,如果成员表中有一个名为Status的字段,我想在用其他值更新之前知道该成员的当前现有状态?

感谢。

1 个答案:

答案 0 :(得分:1)

以下代码将允许您设置具有此列/属性的任何实体的创建日期。在某些情况下,它可以作为触发器。

 public override int SaveChanges()
    {
        foreach (var entry in ChangeTracker.Entries().Where(entry => entry.Entity.GetType().GetProperty("CreationDate") != null))
        {
            if (entry.State == EntityState.Added)
            {
                entry.Property("CreationDate").CurrentValue = DateTime.Now;
            }
        }
        return base.SaveChanges();
    }