/// <summary> /// Creates query context instance. /// </summary> internal QueryContext(string connectionContextName) { // Get entity works context. var entityWorksContext = EntityWorksContext.GetEntityWorksContext(); // Get connection context. this.ConnectionContext = EntityWorksContext.ConnectionContexts[connectionContextName]; // Set db provider factory. this.DbProviderFactory = this.ConnectionContext.GetSpecificDbProvider(); // Set db string builder. this.DbConnectionStringBuilder = DbProviderFactory.CreateConnectionStringBuilder(); // Parse connection string to builder. this.DbConnectionStringBuilder.ConnectionString = ConnectionContext.ConnectionString; // Set connection segments. Name = connectionContextName; Database = DbConnectionStringBuilder["Initial Catalog"] as string; Username = DbConnectionStringBuilder["User ID"] as string; Password = DbConnectionStringBuilder["Password"] as string; Hostname = DbConnectionStringBuilder["Data Source"] as string; // Set connection string. ConnectionString = DbConnectionStringBuilder.ConnectionString; // Set default language code. LanguageCode = entityWorksContext.LanguageCode; }
/// <summary> /// Sets context as ambient context. /// </summary> private void SetAmbiance() { // Get entity works context. var entityWorksContext = EntityWorksContext.GetEntityWorksContext(); // Enlist. entityWorksContext.EnlistAmbientContext(this); }
/// <summary> /// Gets ambient query context. /// </summary> internal static QueryContext GetAmbientQueryContext() { // Get entity works context. var entityWorksContext = EntityWorksContext.GetEntityWorksContext(); // Validate instance if debug mode. EntityWorksContext.ValidateInstance(entityWorksContext); // Get ambient query context. var queryContext = entityWorksContext.PeekAmbientContext(); // Set language code. if (queryContext.LanguageCode == null) { queryContext.LanguageCode = entityWorksContext.LanguageCode; } // Return query context. return(queryContext); }
/// <summary> /// Protected implementation of Dispose pattern. /// </summary> protected virtual void Dispose(bool disposing) { // If disposed return. if (m_isDisposed) { return; } // If disposing release managed objects. if (disposing) { // Get entity works context. var entityWorksContext = EntityWorksContext.GetEntityWorksContext(); // Delist ambient context. entityWorksContext.DelistAmbientContext(this); } // Set disposed indicator true. m_isDisposed = true; }