using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; using System.Text; using System.Threading.Tasks; namespace SMGen.Data { public partial class SMGenDataContext : DbContext { #region Public Constructors public SMGenDataContext() { } public SMGenDataContext(IConfiguration configuration) { _configuration = configuration; try { // se non ci fosse... crea o migra! Database.Migrate(); } catch (Exception exc) { Log.Error(exc, "Exception during context initialization 02"); } } public SMGenDataContext(DbContextOptions options, IConfiguration configuration) : base(options) { _configuration = configuration; // verifico SE devo eseguire la migration del DB IDENT... bool disableMigrate = _configuration.GetValue("SetupOpt:DisableWDCMigrate"); if (!disableMigrate) { try { // se non ci fosse... crea o migra! Database.Migrate(); } catch (Exception exc) { Log.Error(exc, "Exception during context initialization 02"); } } } #endregion Public Constructors #region Public Properties //public virtual DbSet DbSetCompany { get; set; } = null!; #endregion Public Properties #region Public Methods public void DbForceMigrate() { // verifico SE devo eseguire la migration del DB IDENT... bool disableMigrate = _configuration.GetValue("SetupOpt:DisableWDCMigrate"); if (!disableMigrate) { try { // se non ci fosse... crea o migra! Database.Migrate(); Log.Info("DbForceMigrate: done!"); } catch (Exception exc) { Log.Error(exc, "DbForceMigrate: Exception during context initialization 01"); } } } #endregion Public Methods #region Protected Methods protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { string connString = _configuration.GetConnectionString("WDC.DB"); if (!string.IsNullOrEmpty(connString)) { optionsBuilder.UseSqlServer(connString); } else { //// dev //optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=WebDoorCreator;Trusted_Connection=True;", e => e.UseHierarchyId()); optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=WebDoorCreator;Trusted_Connection=True;"); } } } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.UseCollation("Latin1_General_CI_AS"); //modelBuilder.Seed(); OnModelCreatingPartial(modelBuilder); } #endregion Protected Methods #region Private Fields private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); private IConfiguration _configuration; #endregion Private Fields #region Private Methods partial void OnModelCreatingPartial(ModelBuilder modelBuilder); #endregion Private Methods } }