我正在使用 EF 6。
我正在寻找的是我所有的模型,我想在模型创建或更新之前对其进行修改。
有没有我可以 Hook 的事件来简化这一切?
最佳答案
如果您使用的是 DbContext
API,那么您可以覆盖 SaveChanges
方法,您可以在其中使用 ChangeTracker
来获取被跟踪的实体和根据返回的 DbEntry.State
属性 ( EntityState
enum ) 执行自定义逻辑:
public class MyContext : DbContext
{
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries<YourEntity>())
{
if (entry.State == EntityState.Added)
{
// do something with entry.Entity
}
if (entry.State == EntityState.Modified)
{
// do something with entry.Entity
}
// etc.
}
return base.SaveChanges();
}
}
关于c# - EF 是否有一个事件系统,您可以在其中修改模型,然后再保存它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20732207/