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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
        }