private void InitActiveRecord() { INSNConfig config = this.container.Resolve<INSNConfig>(); ConnectionStringSettingsCollection cfgSettings = WebConfigurationManager.ConnectionStrings; NameValueCollection db = WebConfigurationManager.GetSection("databaseSettings", "~/" + Globals.CONFIG_FOLDER_PATH) as NameValueCollection; NameValueCollection ar = WebConfigurationManager.GetSection("activeRecordSettings", "~/" + Globals.CONFIG_FOLDER_PATH) as NameValueCollection; IDictionary<string, string> settings = new Dictionary<string, string>(); foreach (string key in ar.AllKeys) { settings[key] = ar[key]; } string connStrKey = "connection.connection_string"; string connStrNameKey = "connection.connection_string_name"; bool hasConnectionStringName = settings.ContainsKey(connStrNameKey) && settings[connStrNameKey].Length > 0; bool hasConnectionString = settings.ContainsKey(connStrKey) && settings[connStrKey].Length > 0; if (!hasConnectionStringName && !hasConnectionString || hasConnectionStringName && settings[connStrNameKey].Equals("tien.somee.com")) { bool isRemote = Convert.ToBoolean(config[Globals.ISREMOTE]); string @connectionString = (isRemote ? cfgSettings[Globals.CONNECTION_REMOTE_NAME] : cfgSettings[Globals.CONNECTION_LOCAL_NAME] ).ConnectionString; connectionString = isRemote ? string.Format(connectionString, db[Globals.DB_DATASOURCE], db[Globals.DB_PORT], db[Globals.DB_NAME], db[Globals.DB_USER], db[Globals.DB_PASSWORD]) : string.Format(connectionString, db[Globals.DB_DATASOURCE], db[Globals.DB_PORT], db[Globals.DB_NAME]); if (hasConnectionStringName) { settings.Remove(connStrNameKey); } settings[connStrKey] = connectionString; } InPlaceConfigurationSource configSource = new InPlaceConfigurationSource(); configSource.Add(typeof(ActiveRecordBase), settings); configSource.IsRunningInWebApp = Convert.ToBoolean(config[Globals.GLOBAL_ACTIVERECORD_ISWEBAPP]); configSource.SetDebugFlag(Convert.ToBoolean(config[Globals.GLOBAL_ACTIVERECORD_DEBUG])); try { Assembly asmEntities = Assembly.Load(Globals.ASSEMBLY_NSN_ENTITIES); ActiveRecordStarter.SessionFactoryHolderCreated += ActiveRecordStarter_SessionFactoryHolderCreated; ActiveRecordStarter.Initialize(asmEntities, configSource); } finally { ActiveRecordStarter.SessionFactoryHolderCreated -= ActiveRecordStarter_SessionFactoryHolderCreated; } }