实体框架正在更改值
本文关键字:框架 实体 | 更新日期: 2023-09-27 18:00:31
我在数据库中得到了一个值
public int Rev { get; set; }
我想在每行更新时将其更改为Rev+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();
}
}
您可以创建triger,它将在更新表时增加字段。
您可以通过创建从CreateDatabaseIfNotExists或其他实现IDatabaseInitializer和重写方法Seed的类继承的类来完成此操作。
下面是一个简短的例子:
class CdineWithTrigger : CreateDatabaseIfNotExists<RepositoryContext>
{
protected override void Seed(RepositoryContext context)
{
context.Database.ExecuteSqlCommand("YOUR SQL CORE FOR ADDING A TRIGGER");
}
}