此方法支持nopCommerce2.4以上版本(缺少的代码,可参照nopCommerce2.6源码)

 

nopCommerce 4.1 如何支持Mysql 请看 Url:  http://www.nopcn.com/nopcommerce-blog-95.html

 

在工程Easy.Data中:

1、添加MySqlConnectionFactory和MySqlDataProvider

在Easy.Data目录下添加两个Class,MySqlConnectionFactory和MySqlDataProvider,

MySqlConnectionFactory:

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Text;

namespace Easy.Data
{
    public class MySqlConnectionFactory : IDbConnectionFactory
    {
        private readonly string _baseConnectionString;
        private Func<string, DbProviderFactory> _providerFactoryCreator;

        public MySqlConnectionFactory()
        {
        }

        public MySqlConnectionFactory(string baseConnectionString)
        {
            this._baseConnectionString = baseConnectionString;
        }

        public DbConnection CreateConnection(string nameOrConnectionString)
        {
            string connectionString = nameOrConnectionString;

            bool treatAsConnectionString = nameOrConnectionString.IndexOf('=') >= 0;

            if (!treatAsConnectionString)
            {
                MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder(this.BaseConnectionString);
                builder.Server = nameOrConnectionString;
                connectionString = builder.ConnectionString;
            }
            DbConnection connection = null;
            try
            {
                connection = this.ProviderFactory("MySql.Data.MySqlClient").CreateConnection();
                connection.ConnectionString = connectionString;
            }
            catch
            {
                connection = new MySqlConnection(connectionString);
            }
            return connection;
        }

        public string BaseConnectionString
        {
            get
            {
                return this._baseConnectionString;
            }
        }

        internal Func<string, DbProviderFactory> ProviderFactory
        {
            get
            {
                Func<string, DbProviderFactory> func1 = this._providerFactoryCreator;
                return delegate(string name)
                {
                    return DbProviderFactories.GetFactory(name);
                };
            }
            set
            {
                this._providerFactoryCreator = value;
            }
        }
    }
}
View Code

相关文章: