栏目导航
热点推荐
- mysql排序的妙用(类似置顶)
- 优化MySQL的数据库性能的八种方
- MySQL配置文件my.cnf中文版
- linux下mysql命令
- 如何用MySQL-Front远程连接MySql
- 如何修改MySQL 5.1 data文件夹路
- Linux mysql安装修改root密码服
- MySQL Server 5.0安装教程(图解)
- PHP中的MYSQL常用函数
- mysql常见错误提示及解决方法
- MySQL常见错误问答!
- 使用MySQL时的一些常见错误
阅览排行
Microsoft Enterprise Library 5.0 如何集成MyS
www.jz123.cn 2011-03-16 来源: 站长家园 责任编辑(袁袁) 我要投递新闻
今天在网上找了一下Microsoft Enterprise Library 5.0 如何集成MySQL数据库, 结果只找到了entlib 4.1的扩展模块,
http://entlibcontrib.codeplex.com/ , 按照上面的说明配制后还是不成功。
于是只好手动修改一下来支持entlib 5.0
修改后的项目: MySqlDAAB.rar
MySql.Data.dll: MySql.Data.dll
1. 修改MySqlDatabaseAssembler.cs文件
public class MySqlDatabaseData : DatabaseData
{
#region Public Methods
public MySqlDatabaseData(ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
: base(connectionStringSettings, configurationSource)
{
}
#endregion
public override System.Collections.Generic.IEnumerable<Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeRegistration> GetRegistrations()
{
yield return new TypeRegistration<Database>(
() => new MySqlDatabase(
ConnectionString,
Container.Resolved<IDataInstrumentationProvider>(Name))) {
Name = Name,
Lifetime = TypeRegistrationLifetime.Transient
};
}
}
{
#region Public Methods
public MySqlDatabaseData(ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
: base(connectionStringSettings, configurationSource)
{
}
#endregion
public override System.Collections.Generic.IEnumerable<Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeRegistration> GetRegistrations()
{
yield return new TypeRegistration<Database>(
() => new MySqlDatabase(
ConnectionString,
Container.Resolved<IDataInstrumentationProvider>(Name))) {
Name = Name,
Lifetime = TypeRegistrationLifetime.Transient
};
}
}
2. 修改MySqlDatabase.cs文件中的构造函数和在MySqlDatabase类上加上配制属性
[ConfigurationElementType(typeof(MySqlDatabaseData))]
public class MySqlDatabase : Database
{
public MySqlDatabase(string connectionString)
: base(connectionString, MySqlClientFactory.Instance)
{
}
public MySqlDatabase(string connectionString, IDataInstrumentationProvider instrumentationProvider)
: base(connectionString, MySqlClientFactory.Instance, instrumentationProvider)
{
}
public class MySqlDatabase : Database
{
public MySqlDatabase(string connectionString)
: base(connectionString, MySqlClientFactory.Instance)
{
}
public MySqlDatabase(string connectionString, IDataInstrumentationProvider instrumentationProvider)
: base(connectionString, MySqlClientFactory.Instance, instrumentationProvider)
{
}
3. 编译MySqlDAAB项目
4. 在项目中引用MySqlDAAB项目
5. 配制文件中如下配制:
<configSections>
<section name="dataConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,
Microsoft.Practices.EnterpriseLibrary.Data" />
</configSections>
<dataConfiguration >
<providerMappings>
<add name="MySql.Data.MySqlClient"
databaseType="EntLibContrib.Data.MySql.MySqlDatabase, MySqlDAAB" />
</providerMappings>
</dataConfiguration>
<system.data>
<DbProviderFactories>
<add
name="My Sql Data Provider Factory"
invariant="MySql.Data.MySqlClient"
description=""
type="MySql.Data.MySqlClient.MySqlClientFactory" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="TestDB_MySql"
<section name="dataConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,
Microsoft.Practices.EnterpriseLibrary.Data" />
</configSections>
<dataConfiguration >
<providerMappings>
<add name="MySql.Data.MySqlClient"
databaseType="EntLibContrib.Data.MySql.MySqlDatabase, MySqlDAAB" />
</providerMappings>
</dataConfiguration>
<system.data>
<DbProviderFactories>
<add
name="My Sql Data Provider Factory"
invariant="MySql.Data.MySqlClient"
description=""
type="MySql.Data.MySqlClient.MySqlClientFactory" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="TestDB_MySql"
connectionString="server=127.0.0.1;database=test;User Id=root;Password=****;Persist Security Info=True;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
这样就可以使用MySQL数据库了。
0
上一篇:MySQL 数据库存储和分支 下一篇:MySQL ('root'@'%') does not exist的问题