实体拦截所有数据库更改

本文关键字:数据库 实体 | 更新日期: 2023-09-27 18:34:46

在现有的实体应用程序中,我需要在每次数据库更改时调用远程 API。

想知道我是否可以以某种方式挂钩到实体中的事件或类来编写我的代码。类似于以下伪代码的东西

if (Table == "Business") Api.Call

实体拦截所有数据库更改

您可以将

context.SaveChanges()包装在存储库中的方法调用中,并在那里处理更改。

using System.Data.Entity.Infrastructure;
//may be wrong syntax
public bool SaveAllChanges()
{
   var Changes = context.ChangeTracker.Entries()
                        .Where(e => e.State == EntityState.Modified | e.State == EntityState.Added | e.State ...);
   foreach(var change in Changes)
   {
     //check if you need to call your API
   }
   return context.SaveChanges() > 0 
}