微软企业库 mysql_微软企业库5.0 支持 MySql

三步让 企业库支持 mysql 数据库

1.创建 MySqlDatabaseData 类

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel;

using Microsoft.Practices.EnterpriseLibrary.Data;

using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;

using Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation;

using System.Configuration;

namespace Grass.MySqlDal.Data

{

///

/// Describes a instance, aggregating information from a

/// .

///

public class MySqlDatabaseData : DatabaseData

{

#region Public Methods

public MySqlDatabaseData(ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)

: base(connectionStringSettings, configurationSource)

{

}

#endregion

///

/// Creates a instance describing the represented by

/// this configuration object.

///

/// A instance describing a database.

public override System.Collections.Generic.IEnumerable GetRegistrations()

{

yield return new TypeRegistration(

() => new MySqlDatabase(

ConnectionString,

Container.Resolved(Name)))

{

Name = Name,

Lifetime = TypeRegistrationLifetime.Transient

};

}

}

}

2.创建 MySqlDatabase 类

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;

using Microsoft.Practices.EnterpriseLibrary.Data;

using Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation;

using MySql.Data.MySqlClient;

namespace Grass.MySqlDal.Data

{

///

/// MySql 数据库訪问基础

///

[ConfigurationElementType(typeof(MySqlDatabaseData))]

public class MySqlDatabase : Database

{

///

/// Initializes a new instance of the class with a connection string.

///

/// The connection string.

public MySqlDatabase(string connectionString)

: base(connectionString, MySqlClientFactory.Instance)

{

}

///

/// Initializes a new instance of the class with a

/// connection string and instrumentation provider.

///

/// The connection string.

/// The instrumentation provider.

public MySqlDatabase(string connectionString, IDataInstrumentationProvider instrumentationProvider)

: base(connectionString, MySqlClientFactory.Instance, instrumentationProvider)

{

}

///

/// Retrieves parameter information from the stored procedure specified in the and populates the Parameters collection of the specified object.

///

/// The to do the discovery.

/// The must be a instance.

protected override void DeriveParameters(System.Data.Common.DbCommand discoveryCommand)

{

MySqlCommandBuilder.DeriveParameters((MySqlCommand)discoveryCommand);

}

}

}

3.加入 config 支持

databaseType="Grass.MySqlDal.Data.MySqlDatabase, Grass.MySqlDal" />

name="MySql Data Provider Factory"

invariant="MySql.Data.MySqlClient"

description="MySql Data Provider"

type="MySql.Data.MySqlClient.MySqlClientFactory" />

connectionString="server=127.0.0.1;database=test;User Id=root;Password=123456;Persist Security Info=True;"

providerName="MySql.Data.MySqlClient"/>

ok 了,试下吧~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值