Acceder Registrarme

DbContext para la conexión a base de datos desde un proyecto de C#.Net con Entity Framework (DataBaseContext)


Por: Kevin Arnold Arias Figueroa Publicado el: 2017-12-03 16:22:46
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();
        }
    }
}