private void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e) { using (var benchmark = Benchmark.Start()) { IBaseEntity entity = e.Entity as IBaseEntity; var entityFormatters = Container.TryGetAll <IEntityFormatter>(); if (entity != null) { foreach (var formatter in entityFormatters) { if (formatter.OnLoad(e.Entity.GetType(), entity)) { ((ObjectContext)sender).ObjectStateManager.GetObjectStateEntry(e.Entity).AcceptChanges(); } } entity.OnLoad(this); } benchmark.Stop(); if (LoggingEnabled) { Logger.Info(Logger.Completed(benchmark.TotalTime, true, "Entity Loaded: {0}".FormatString(e.Entity.GetType().Name)), RepositoryConstants.RepositoryComponent); } } }