Да, есть способ подключиться к процессу сохранения, если Entity Framework для выполнения некоторой пользовательской логики.
Вот пример того, как расширить простую модель NorthwindEntities и выполнить некоторую работу во время процесса добавления / обновления / удаления:
public partial class NorthwindEntities
{
partial void OnContextCreated()
{
SavingChanges += OnSavingChanges;
}
private void OnSavingChanges(object sender, EventArgs e)
{
var context = sender as NorthwindEntities;
if (context != null)
{
context.DetectChanges();
var objectStateManager = context.ObjectStateManager;
foreach (var entry in objectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted))
{
switch (entry.State)
{
case EntityState.Added:
// Perform custom 'add' logic here
break;
case EntityState.Modified:
// Perform custom 'update' logic here
break;
case EntityState.Deleted:
// Perform custom 'delete' logic here
break;
}
}
}
}
}