2012-09-11 43 views
0

我正在嘗試使用BLToolkit建立與MySQL服務器的連接,並安裝了MySql.Data(6.5.4),BLToolkit(4.1.12)和BLToolkit.MySql(4.1.12) )通過NuGet。我可以在一個單一的線到MSSQL服務器的連接,但有麻煩與MySQL和結束了與下面的配置文件...使用MySQL連接的BLToolkit

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <BLToolkit> 
     <dataProviders> 
      <add type="BLToolkit.Data.DataProvider.MySqlDataProvider" /> 
     </dataProviders> 
    </BLToolkit> 
    <configSections> 
     <section name="BLToolkit" type="BLToolkit.Configuration.BLToolkitSection, BLToolkit.4" /> 
    </configSections> 
    <connectionStrings> 
     <add name="Test" 
      connectionString="Data Source=localhost;Port=3306;Database=bltest;User ID=root;Password=root;" 
      providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 
</configuration> 

我已經擴展了DbManager類實現的一個參考表,並將連接字符串的名稱傳遞給基類。這是我如何實現這種行爲,這應該告訴BLToolkit從配置文件加載的connectionString ...

class BlDb : DbManager { 
    public BlDb() 
     : base("Test") { 
     return; 
    } 
    public Table<Car> Car { get { return GetTable<Car>(); } } 
    public Table<Make> Make { get { return GetTable<Make>(); } } 
} 

例外,然而,被拋出。例外是「BLToolkit.Data.DbManager的類型初始值設定項」引發了一個異常。「內部例外是「配置系統無法初始化」。我應該如何繼續?請注意,在SO,Getting BLToolkit to work with MySQL上也存在類似的問題,這可能對您有幫助,但對我沒有任何意義。是不是安裝了兩個NuGet包?

回答

1

您需要添加對您的項目的引用BLToolkit.Data.DataProvider.MySql.4.dll。然後修改您的擴展DbManager類看起來像下面

class BlDb : DbManager 
{ 
    public BlDb() 
     : base(new BLToolkit.Data.DataProvider.MySqlDataProvider(), "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword") 
    {   
    } 
    public Table<Car> Car { get { return GetTable<Car>(); } } 
    public Table<Make> Make { get { return GetTable<Make>(); } } 
} 

可以取代硬編碼的連接字符串,並從像ConfigurationManager.ConnectionStrings [「測試」]您的app.config文件寄回。的ConnectionString

+0

按預期工作。如果任何人有同樣的問題,請注意,您需要刪除您可能從配置文件中添加的垃圾,然後使用它。謝謝 :) –