using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
namespace svslibrary
{
public abstract class DataBaseContext : DbContext
{
public DataBaseContext() : base("connectionString")
{
Database.SetInitializer<DataBaseContext>(null);
Configuration.ProxyCreationEnabled = false;
Configuration.LazyLoadingEnabled = false;
Configuration.ValidateOnSaveEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
public bool TestConnection()
{
return Database.Exists();
}
public override int SaveChanges()
{
DateTime fechaActual = DateTime.Now;
var modifiedEntries = ChangeTracker.Entries().Where(x => x.Entity is IAuditableEntity && (x.State == System.Data.Entity.EntityState.Added || x.State == EntityState.Modified));
foreach (var entry in ChangeTracker.Entries())
{
IAuditableEntity entity = entry.Entity as IAuditableEntity;
if (entry.State == EntityState.Added)
{
entity.state = StateEnum.Active.Value;
entity.registrationDate = fechaActual;
entity.modificationDate = fechaActual;
}
else if (entry.State == EntityState.Modified)
{
entity.modificationDate = fechaActual;
}
}
return base.SaveChanges();
}
}
}