gpt4 book ai didi

c# - EF 是否有一个事件系统,您可以在其中修改模型,然后再保存它?

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:11 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com