public static IChangeLogger CreateChangeLogger(ConnectionFactory.ConnectionMethod connectionMethod, string connectionstring = null, DbConnection conn = null, bool?killConnectionOnDispose = null) { IChangeLogger c = new ChangeLogger(); switch (connectionMethod) { case ConnectionFactory.ConnectionMethod.AppSettingsConnectionString: { c.LoadContext(); break; } case ConnectionFactory.ConnectionMethod.ConnectionString: { c.LoadContext(connectionstring); break; } case ConnectionFactory.ConnectionMethod.CurrentContextConnection: { bool killconn = false; if (killConnectionOnDispose.HasValue) { killconn = killConnectionOnDispose.Value; } c.LoadContext(conn, killconn); break; } } return(c); }
public Repository(DbContext context, ConnectionFactory.ConnectionMethod conn, string connectionString = null, bool killConnectionOnCtxDispose = false, DbConnection changeLogConnectionContext = null) { _ChangeLogQueue = new List <ChangeLog_Entry>(); ContextChangesQueue = new List <ContextChange_DTO>(); KillConnectionOnDispose = killConnectionOnCtxDispose; ctx = context; ConnectionString = ctx.Database.Connection.ConnectionString; Workspace = ((IObjectContextAdapter)ctx).ObjectContext.MetadataWorkspace; LoadLogger(conn, connectionString, killConnectionOnCtxDispose, changeLogConnectionContext); }
public void LoadLogger(ConnectionFactory.ConnectionMethod conn, string connectionString = null, bool killConnectionOnCtxDispose = false, DbConnection changeLogConnectionContext = null) { DbConnection connToUse = changeLogConnectionContext; if (connToUse == null && ctx != null) { connToUse = ctx.Database.Connection; } if (!String.IsNullOrWhiteSpace(connectionString) || conn == ConnectionFactory.ConnectionMethod.AppSettingsConnectionString || connToUse != null) { logger = ChangeLoggerContext_Factory.CreateChangeLogger(conn, connectionString, connToUse, killConnectionOnCtxDispose); } KillConnectionOnDispose = killConnectionOnCtxDispose; }