В моем приложении ASP.NET WebAPI есть уровень данных и сервиса, несколько проектов в одном решении.
Data Layer (Entity Framework)
-DbContext.cs
Service Layer (Business Logic)
-Controller.cs
-Global.asax
Одна из моих сущностей требует перехвата бизнес-логики при каждом запуске DbContext SaveChanges ().
public class MyDbContext : DbContext
{
public override int SaveChanges()
{
BusinessLogicAndUpdateEntity(); //Code from Service Layer
return base.SaveChanges();
}
}
В настоящее время бизнес-логика находится на уровне сервиса, и проект данных не может ссылаться на проект уровня сервиса, иначе проект будет циклически ссылаться друг на друга.
Есть ли способ переопределить DbContext SaveChanges () в слое сервиса, не перенося мою бизнес-логику на уровень данных?