Нет.Нет доступных событий / обратных вызовов.EF ObjectContext
предлагает только ObjectMaterialized
и SavingChanges
события.Первый может использоваться для реагирования, когда сущность материализуется (загружается) из базы данных, а второй может использоваться для обработки чего-либо до сохранения изменений (это похоже на переопределение SaveChanges
метода).
Пример:
public void SavingChanges(object sender, EventArgs e)
{
ObjectContext context = (ObjectContext)sender;
var entities = context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added)
.Where(e => !e.IsRelationship)
.Select(e => e.Entity)
.OfType<MyEntity>();
// Now you have all entities of type MyEntity which will be added
// You can use similar approach for other type of entities or
// modified entities or deleted entities
}
EF не предлагает каких-либо глобальных условий / именованных областей.Вы всегда должны убедиться, что ваш запрос содержит все условия.Например, вы можете создать собственный метод расширения и вместо значения по умолчанию Find использовать тот метод расширения, который добавит все ваши дополнительные условия
Пример:
public static MyEntity FindWithCondition(this IQueryable<MyEntity> query, int id)
{
return query.Where(...).FirstOrDefault(e => e.Id == id);
}