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

C# 实体框架在更新前检查当前值,c#,entity-framework,C#,Entity Framework,我们有一个CRUD操作库。基本上,如果我们想执行任何读/写操作,我们可以执行以下操作 using (MemberRepo mRepo = new MemberRepo()) { mRepo.UpdateEntity(member); mRepo.Save(); } 然而,我需要知道的是,在我们更新数据库之前,是否有可能知道数据库中的某个列值?例如,如果成员表中有一个名为Status的字段,我想知道该成员的当前状态,然后再使用其他值更新

我们有一个CRUD操作库。基本上,如果我们想执行任何读/写操作,我们可以执行以下操作

    using (MemberRepo mRepo = new MemberRepo())
    {
         mRepo.UpdateEntity(member);
         mRepo.Save();
    }
然而,我需要知道的是,在我们更新数据库之前,是否有可能知道数据库中的某个列值?例如,如果成员表中有一个名为Status的字段,我想知道该成员的当前状态,然后再使用其他值更新它


谢谢。

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

 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();
    }

检索现有值检查它,然后更新。是的,我们可以这样做,但我认为在SQL Server中,当我们在更新上编写触发器时,我们有一个名为deleted的对象(表)句柄,该对象(表)具有更新发生前的值。我在想,我们在EF中有类似的东西,我们不需要重新阅读整个obj,但据我所知,EF中不支持触发器。不是触发器支持,而是我在这里尝试做的事情。ORM工具不支持,如果需要,您可以为此创建自定义存储库模式。