Пример #1
0
        /// <summary>
        /// Creates a named database instance from the data configuration types
        /// </summary>
        /// <param name="instanceName">The instance name to use for the database</param>
        /// <param name="connectionData">The connection string data</param>
        /// <param name="providerData">The type provider data</param>
        /// <returns>An initialized database provider</returns>
        public static Database CreateDatabase(string instanceName, ConnectionStringData connectionData, DatabaseTypeData providerData)
        {
            ArgumentValidation.CheckForEmptyString(instanceName, "Instance Name");
            ArgumentValidation.CheckForNullReference(connectionData, "Connection Data");
            ArgumentValidation.CheckForNullReference(providerData, "Provider Data");

            DatabaseSettings settings = new DatabaseSettings();

            // Setup the provider and connection string data
            settings.DatabaseTypes.Add(providerData);
            settings.ConnectionStrings.Add(connectionData);

            // The instance data binds the provider and connection string together
            InstanceData instanceData = new InstanceData();

            instanceData.ConnectionString = connectionData.Name;
            instanceData.DatabaseTypeName = providerData.Name;
            instanceData.Name             = instanceName;

            // setup your instanceData
            settings.Instances.Add(instanceData);

            // Setup a data dictionary
            ConfigurationDictionary configDictionary = new ConfigurationDictionary();

            configDictionary.Add(_configName, settings);
            ConfigurationContext context = ConfigurationManager.CreateContext(configDictionary);

            return(new DatabaseProviderFactory(context).CreateDatabase(instanceName));
        }
Пример #2
0
        /// <summary>
        /// Takes a connection string and breaks it down into its component name/value pairs, then loads the pairs
        /// into a <see cref="ConnectionStringData"/> object.
        /// </summary>
        /// <param name="connectionStringData">The data object to be loaded from the connectString</param>
        /// <param name="connectString">The connection string</param>
        /// <remarks>
        /// No attempt is made to validate the connection string nor any of its contents. If the string cannot be parsed
        /// an exception will be thrown.
        /// </remarks>
        internal static void BuildConnectionStringDataFromConnectString(ConnectionStringData connectionStringData, string connectString)
        {
            ArgumentValidation.CheckForNullReference(connectionStringData, "Connection String Data");
            ArgumentValidation.CheckForEmptyString(connectString, "Connect String");

            string[] items = connectString.Split(';');

            foreach (string item in items)
            {
                if (item.Length > 0)
                {
                    string[] parms = item.Split('=');
                    connectionStringData.Parameters.Add(new ParameterData(parms[0], parms[1]));
                }
            }
        }