0

我在数据库中有一个值

public int Rev { get; set; }

我想在每行更新时将其更改为 Rev+1,但由于我是实体框架的新手,我不知道如何编程。有人可以帮忙吗?

4

2 回答 2

1

您可以创建一个新的分部类来覆盖 EF 对象上的 SaveChanges() 方法。在 SaveChanges() 方法中,您可以检查每个条目YourTableEntity以查看它是否被修改,如果是,则增加 Rev 属性。

public partial class YourDBNameDBEntities : DbContext
{
    public override int SaveChanges()
    {
        foreach (var entry in this.ChangeTracker.Entries<YourTableEntity>().ToList())
        {
            if (entry.State == System.Data.EntityState.Modified)
            {
                entry.Entity.Rev++;
            }
        }
        return base.SaveChanges();
    }
}
于 2013-02-21T20:40:35.097 回答
0

您可以创建触发器,它会在您更新表格时增加您的字段。

您可以通过创建一个继承自 CreateDatabaseIfNotExists 的类或其他实现IDatabaseInitializer并覆盖方法 Seed 的类来实现。

这是一个简短的例子:

class CdineWithTrigger : CreateDatabaseIfNotExists<RepositoryContext>
{
   protected override void Seed(RepositoryContext context)
   {
      context.Database.ExecuteSqlCommand("YOUR SQL CORE FOR ADDING A TRIGGER");
   }
}
于 2013-02-21T20:33:25.623 回答