首页 > 新闻系统 > 编程天地 > 文章正文

Ent Lib 2.0 DAAB添加MySql扩展

2008-04-09 10:32:21 来源:中国自学编程网 作者:未知 点击:

 
1. 准备
    注释掉Data项目GlobalAssemblyInfo.cs文件里[assembly: CLSCompliant(true)]这一句。因为引用MySql.Data.dll中有不符合CLS规范的地方。
    确保安装了MySql .Net Connector,为Data项目添加MySql.Data.dll的引用。

2. 扩展
    经过前期的测试,MySql.Data基本完全跟System.Data.SqlClient操作方式一样,因此DAAB中MySql的扩展也只需要针对MySql,仿照SqlDatabase进行扩展就可以了。
    在Data项目中添加MySql目录,并在目录下添加下面的两个文件,编译,或者另外建立一个工程来做(为了简短起见,注视都去掉了)。
  namespace Microsoft.Practices.EnterpriseLibrary.Data.MySql
{
    using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
    using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
    public class MySqlDatabaseAssembler : IDatabaseAssembler
    {
        public Database Assemble(string name, ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
        {
            return new MySqlDatabase(connectionStringSettings.ConnectionString);
        }
    }
}
namespace Microsoft.Practices.EnterpriseLibrary.Data.MySql
{
    using System;
    using System.Data;
    using System.Data.Common;
    using MySql.Data.MySqlClient;
    using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
    [DatabaseAssembler(typeof(MySqlDatabaseAssembler))]
    public class MySqlDatabase : Database
    {
        private const char _parameterToken = '?';
        public MySqlDatabase(string connectionString)
            : base(connectionString, MySqlClientFactory.Instance)
        {
        }
        protected override void DeriveParameters(DbCommand discoveryCommand)
        {
            MySqlCommandBuilder.DeriveParameters((MySqlCommand)discoveryCommand);
        }
        public override string BuildParameterName(string name)
        {
            if (name[0] != _parameterToken)
            {
                return name.Insert(0, new string(_parameterToken, 1));
            }
            return name;
        }
9 7 3 1 2 3 4 5 4 8 :

相关文章:

    无相关新闻
    无相关新闻

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203