0

BLToolkitを使用してMySQLサーバーへの接続を確立しようとしていますが、NuGetを介してMySql.Data(6.5.4)、BLToolkit(4.1.12)、およびBLToolkit.MySql(4.1.12)をインストールしました。1行でMSSQLサーバーに接続できますが、MySQLで問題が発生し、次の構成ファイルが作成されました...

<?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クラスを拡張してテーブルへの参照を実装し、接続文字列の名前を基本クラスに渡しました。これが私がこの振る舞いを実装した方法であり、構成ファイルからconnectionStringをロードするようにBLToolkitに指示する必要があります...

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にも存在することに注意してください。BLToolkitをMySQLで動作させることは、役立つリファレンスかもしれませんが、私にはまったく意味がありません。両方のNuGetパッケージをインストールするだけでは不十分ですか?

4

1 に答える 1

2

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["Test"]。ConnectionStringのようなapp.configファイルから返すことができます。

于 2012-09-11T20:56:25.843 に答える