BLToolkit using a MySQL connection

送分小仙女□ 提交于 2020-01-25 08:56:05

问题


I am making an attempt to establish a connection to a MySQL server using BLToolkit, and have installed MySql.Data (6.5.4), BLToolkit (4.1.12) and BLToolkit.MySql (4.1.12) via NuGet. I can make a connection to a MSSQL server in a single line, but have had trouble with MySQL and ended up with the following configuration file ...

<?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>

I have extended the DbManager class to implement a reference to the tables, and passed the name of the connection string into the base class. This is how I implemented this behaviour, which should be telling BLToolkit to load the connectionString from the configuration file ...

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

An exception, however, is thrown. The exception is "The type initializer for 'BLToolkit.Data.DbManager' threw an exception." with the inner exception being "Configuration system failed to initialize". How should I proceed? Please note that a similar question does exist on SO, Getting BLToolkit to work with MySQL, which might be a helpful reference for you but doesn't make any sense whatsoever to me. Is installing both NuGet packages not enough?


回答1:


Firts you need to add the reference to the BLToolkit.Data.DataProvider.MySql.4.dll to your project. Then modify your extended DbManager class to look as the following

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>(); } }
}

you can replace the hard-coded connection string and return it from your app.config file like ConfigurationManager.ConnectionStrings["Test"].ConnectionString



来源:https://stackoverflow.com/questions/12365849/bltoolkit-using-a-mysql-connection

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!