コード例 #1
0
        /// <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;
        }
コード例 #2
0
        /// <summary>
        /// Sets context as ambient context.
        /// </summary>
        private void SetAmbiance()
        {
            // Get entity works context.
            var entityWorksContext = EntityWorksContext.GetEntityWorksContext();

            // Enlist.
            entityWorksContext.EnlistAmbientContext(this);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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;
        }