Entity Framework 3.5 и 4.0 предлагает даже под названием SavingChanges
. Entity Framework 4.0 и 4.1 имеет виртуальный метод SaveChanges
(как уже упоминалось).
Вы можете переопределить метод или использовать обработчик событий и написать код, подобный этому, для 3.5 и 4.0:
var entities = context.ObjectStateManager
.GetObjectStateEntries(EntitiState.Modified | EntityState.Added)
.Where(e => !e.IsRelationship)
.Select(e => e.Entity)
.OfType<YourEntityType>();
foreach(var entity in entities)
{
entity.Validate();
}
В DbContext API (EF 4.1) вы должны использовать
var entities = context.ChangeTracker
.Entries<YourEntityType>()
.Where(e.State == EntityState.Added || e.State == EntityState.Modified)
.Select(e => e.Entity);
foreach(var entity in entities)
{
entity.Validate();
}
Вы можете использовать пользовательский интерфейс, реализованный вашими сущностями, который предоставит метод Validate
.