2009-10-22 103 views
1

Heya,我正在尝试让bltoolkit在我的项目中工作。 我已经将BLToolkit.3项目添加到我的解决方案中并且正确引用它。让BLToolkit与MySQL一起工作

问题代码非常简单。

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

随着

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

当我尝试运行,我得到下面的异常一个app.config:“为‘BLToolkit.Data.DbManager’的类型初始值引发了异常。”

经仔细检查它似乎是线路261在DbManager.Config.cs

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

这基本上未能得到MySQL的供应商类型。我试过把MySQL.data.dll放在我的应用程序运行路径中,但没有运气。

任何想法?

回答

2

默认情况下,MySqlDataProvider未包含在构建中。您必须下载源代码并将MySqlDataProvider.cs作为“Existing Item”添加到您的项目中(并适当地修改程序集限定的类型名称)。或者,如果您在重新编译BLTooklit方面没问题,则可以将其包含在BLToolkit项目本身中。

+0

Aaaah,我明白了。将它设置为编译MySQLProvider并删除了强大的命名,现在它的工作非常好,谢谢:) – Josh 2009-10-22 10:29:46

+0

对于使用ODP.net的Oracle,情况是否如此? – JayG 2010-03-19 18:38:18

+0

@JayG,是的,你需要在使用odp.net时也这样做。 – Theo 2010-05-06 12:02:56