让 BLToolkit 与 MySQL 一起工作

Posted

技术标签:

【中文标题】让 BLToolkit 与 MySQL 一起工作【英文标题】:Getting BLToolkit to work with MySQL 【发布时间】:2009-10-22 09:55:33 【问题描述】:

嘿,我目前正在尝试让 bltoolkit 在我的项目中工作。 我已将 BLToolkit.3 项目添加到我的解决方案中并适当地引用它。

有问题的代码真的很简单。

    public List<Account> LoadAccounts()
    
        using (DbManager db = new DbManager("mysql"))
        
            var query = new SqlQuery<Account>();
            return query.SelectAll(db);
        
    

使用 app.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="bltoolkit" type="BLToolkit.Configuration.BLToolkitSection, BLToolkit.3"/>
  </configSections>

  <bltoolkit>
    <dataProviders>
      <add type="BLToolkit.Data.DataProvider.MySqlDataProvider" />
    </dataProviders>
  </bltoolkit>

  <connectionStrings>
    <add name="MySql" connectionString="Server=localhost;Port=3306;Database=BLT;Uid=root;" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
</configuration>

当我尝试运行它时,我收到以下异常:“'BLToolkit.Data.DbManager' 的类型初始化程序引发了异常。”

仔细检查后,它似乎是 DbManager.Config.cs 中的第 261 行

Type             dataProviderType = Type.GetType(provider.TypeName, true);

这基本上无法获取 MySQL 提供程序类型。我尝试将 MySQL.data.dll 放在我的应用程序运行路径中,但没有成功。

有什么想法吗?

【问题讨论】:

【参考方案1】:

默认情况下,MySqlDataProvider 不包含在构建中。您必须下载源代码并将MySqlDataProvider.cs 作为“现有项”添加到您的项目中(并适当地修改程序集限定的类型名称)。或者,如果您对重新编译 BLToolkit 感到满意,您可以将其包含在 BLToolkit 项目本身中。

【讨论】:

啊啊,我明白了。将其设置为编译 MySQLProvider 并删除强命名,现在它工作得很好,谢谢:) Oracle 使用 ODP.net 是否也是如此? @JayG,是的,使用 odp.net 时也需要这样做。

以上是关于让 BLToolkit 与 MySQL 一起工作的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法让 MySQL 与 Visual Studio 2012 Express 一起工作?

似乎无法让 tagsinput-typeahead 与远程 MySQL 源一起工作

如何让 concurrent.futures ProcessPoolExecutor 与字典一起工作?

无法让自定义 RKBlockValueTransformer 与 RestKit 一起正常工作

如何让 dataTable 与 PHP 一起工作

让 JBoss Seam 与 Eclipse 一起工作