Microsoft Enterprise Library 5.0 如何整合MySQL資料庫

來源:互聯網
上載者:User

今天在網上找了一下Microsoft Enterprise Library 5.0 如何整合MySQL資料庫, 結果只找到了entlib 4.1的擴充模組,

http://entlibcontrib.codeplex.com/ , 按照上面的說明配製後還是不成功。

於是只好手動修改一下來支援entlib 5.0

修改後的項目:   MySqlDAAB.rar 

MySql.Data.dll:  MySql.Data.dll

1. 修改MySqlDatabaseAssembler.cs檔案

public class MySqlDatabaseData : DatabaseData
    {
        #region Public Methods
        public MySqlDatabaseData(ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
            : base(connectionStringSettings, configurationSource)
        {
        }
        #endregion

        public override System.Collections.Generic.IEnumerable<Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeRegistration> GetRegistrations()
        {
            yield return new TypeRegistration<Database>(
                () => new MySqlDatabase(
                    ConnectionString,
                    Container.Resolved<IDataInstrumentationProvider>(Name))) {
                        Name = Name,
                        Lifetime = TypeRegistrationLifetime.Transient
                    };
        }
    }

2. 修改MySqlDatabase.cs檔案中的建構函式和在MySqlDatabase類上加上配製屬性

  [ConfigurationElementType(typeof(MySqlDatabaseData))]
    public class MySqlDatabase : Database
    {       
        public MySqlDatabase(string connectionString)
            : base(connectionString, MySqlClientFactory.Instance)
        {
        }        
        public MySqlDatabase(string connectionString, IDataInstrumentationProvider instrumentationProvider)
            : base(connectionString, MySqlClientFactory.Instance, instrumentationProvider)
        {
        }        

3. 編譯MySqlDAAB項目

4. 在項目中引用MySqlDAAB項目

5. 配製檔案中如下配製: 

    <configSections>
        <section name="dataConfiguration"
            type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,
                    Microsoft.Practices.EnterpriseLibrary.Data" />
    </configSections>
    <dataConfiguration >
        <providerMappings>
            <add name="MySql.Data.MySqlClient"
            databaseType="EntLibContrib.Data.MySql.MySqlDatabase, MySqlDAAB" />
        </providerMappings>
    </dataConfiguration>
    <system.data>
        <DbProviderFactories>
            <add
                name="My Sql Data Provider Factory"
                invariant="MySql.Data.MySqlClient"
                description=""
                type="MySql.Data.MySqlClient.MySqlClientFactory" />
        </DbProviderFactories>
    </system.data>
    <connectionStrings>
      <add name="TestDB_MySql" 

      connectionString="server=127.0.0.1;database=test;User Id=root;Password=****;Persist Security Info=True;"
           providerName="MySql.Data.MySqlClient"/>
    </connectionStrings>

 這樣就可以使用MySQL資料庫了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.