/// <summary>
        /// 获取模块表名,支持跨库
        /// </summary>
        /// <param name="modelType">实体类型对象</param>
        /// <param name="currTempDblinkArgs">当前连接对象,默认为本地连接</param>
        /// <returns></returns>
        public static string GetModuleTableName(Type modelType, DbLinkArgs currTempDblinkArgs = null)
        {
            string dbType = string.Empty;
            //额外配置的连接字符串
            string connString = GetModelConnString(modelType, out dbType);

            if (string.IsNullOrWhiteSpace(dbType))
            {
                dbType = "0";
            }
            DatabaseType dbTypeEnum = DatabaseType.MsSqlServer;

            try
            {
                dbTypeEnum = (DatabaseType)Enum.Parse(typeof(DatabaseType), dbType);
            }
            catch { }
            //额外数据库连接对象
            DbLinkArgs dblinkArgs = GetDbLinkArgs(connString, dbTypeEnum);

            if (dblinkArgs != null)
            {
                //本地连接字符串
                string currConnString = WebConfigHelper.GetConnectionString("DbReadConnString");
                string currDbTypeStr  = WebConfigHelper.GetAppSettingValue("DbType");
                if (string.IsNullOrEmpty(currDbTypeStr))
                {
                    currDbTypeStr = "0";
                }
                DatabaseType currDbType = DatabaseType.MsSqlServer;
                try
                {
                    currDbType = (DatabaseType)Enum.Parse(typeof(DatabaseType), currDbTypeStr);
                }
                catch { }
                //本地连接对象
                DbLinkArgs currDblinkArgs = currTempDblinkArgs != null ? currTempDblinkArgs : GetDbLinkArgs(currConnString, currDbType);
                if (dblinkArgs.DataSource == currDblinkArgs.DataSource || dblinkArgs.DataSource == "." || dblinkArgs.DataSource == "(local)") //服务器相同或本地服务器
                {
                    if (dblinkArgs.DbName != currDblinkArgs.DbName)                                                                           //跨库不跨服务器
                    {
                        return(string.Format("[{0}].[dbo].[{1}]", dblinkArgs.DbName, modelType.Name));
                    }
                }
                else //跨服务器
                {
                    return(string.Format("[{0}].[{1}].[dbo].[{2}]", dblinkArgs.DataSource, dblinkArgs.DbName, modelType.Name));
                }
            }
            return(modelType.Name);
        }
        /// <summary>
        /// 获取实体连接字符串
        /// </summary>
        /// <param name="modelType">实体类型对象</param>
        /// <param name="dbType">数据库类型</param>
        /// <param name="read">读写分离标识,是否读数据库,为否则取写数据库</param>
        /// <param name="export">是否为导出</param>
        /// <returns></returns>
        public static string GetModelConnString(Type modelType, out string dbType, bool read = true, bool export = false)
        {
            dbType = string.Empty;
            if (null == modelType)
            {
                return(string.Empty);
            }
            string tempConnStr     = string.Empty;
            string modelConfigPath = GetModelConfigXml();
            string node            = GetModelNode(modelType);

            if (!string.IsNullOrEmpty(node)) //有配置节点
            {
                tempConnStr = XmlHelper.Read(modelConfigPath, node, export ? "exportConnString" : (read ? "readConnString" : "writeConnString"));
                if ((!read || export) && string.IsNullOrEmpty(tempConnStr))
                {
                    tempConnStr = XmlHelper.Read(modelConfigPath, node, "readConnString");
                }
                dbType = XmlHelper.Read(modelConfigPath, node, "dbType");
                if (string.IsNullOrEmpty(tempConnStr) && modelType.BaseType != null)
                {
                    tempConnStr = GetModelConnString(modelType.BaseType, out dbType, read, export);
                    if (string.IsNullOrEmpty(tempConnStr) && modelType.BaseType.BaseType != null)
                    {
                        tempConnStr = GetModelConnString(modelType.BaseType.BaseType, out dbType, read, export);
                    }
                }
            }
            if (string.IsNullOrEmpty(tempConnStr)) //节点配置中没有配置连接字符串时
            {
                string readConnStr  = export ? WebConfigHelper.GetConnectionString("exportConnString") : WebConfigHelper.GetConnectionString("DbReadConnString");
                string writeConnStr = WebConfigHelper.GetConnectionString("DbWriteConnString");
                if (!read) //写
                {
                    if (!string.IsNullOrEmpty(writeConnStr))
                    {
                        return(writeConnStr);
                    }
                    return(readConnStr);
                }
                else //读
                {
                    return(readConnStr);
                }
            }
            return(tempConnStr);
        }
        /// <summary>
        /// 模块数据库是否是跨服务器
        /// </summary>
        /// <param name="modelType">实体类型</param>
        /// <returns></returns>
        public static bool IsCrossServer(Type modelType)
        {
            string dbType = string.Empty;
            //额外配置的连接字符串
            string connString = GetModelConnString(modelType, out dbType);

            if (string.IsNullOrWhiteSpace(dbType))
            {
                dbType = "0";
            }
            DatabaseType dbTypeEnum = DatabaseType.MsSqlServer;

            try
            {
                dbTypeEnum = (DatabaseType)Enum.Parse(typeof(DatabaseType), dbType);
            }
            catch { }
            //额外数据库连接对象
            DbLinkArgs dblinkArgs = GetDbLinkArgs(connString, dbTypeEnum);

            if (dblinkArgs != null)
            {
                //本地连接字符串
                string currConnString = WebConfigHelper.GetConnectionString("DbReadConnString");
                string currDbTypeStr  = WebConfigHelper.GetAppSettingValue("DbType");
                if (string.IsNullOrEmpty(currDbTypeStr))
                {
                    currDbTypeStr = "0";
                }
                DatabaseType currDbType = DatabaseType.MsSqlServer;
                try
                {
                    currDbType = (DatabaseType)Enum.Parse(typeof(DatabaseType), currDbTypeStr);
                }
                catch { }
                //本地连接对象
                DbLinkArgs currDblinkArgs = GetDbLinkArgs(currConnString, currDbType);
                if (dblinkArgs.DataSource != currDblinkArgs.DataSource) //服务器不相同
                {
                    return(true);
                }
            }
            return(false);
        }
        /// <summary>
        /// 获取本地数据库连接对象
        /// </summary>
        /// <returns></returns>
        public static DbLinkArgs GetLocalDbLinkArgs()
        {
            string currConnString = WebConfigHelper.GetConnectionString("DbReadConnString");
            string currDbTypeStr  = WebConfigHelper.GetAppSettingValue("DbType");

            if (string.IsNullOrEmpty(currDbTypeStr))
            {
                currDbTypeStr = "0";
            }
            DatabaseType currDbType = DatabaseType.MsSqlServer;

            try
            {
                currDbType = (DatabaseType)Enum.Parse(typeof(DatabaseType), currDbTypeStr);
            }
            catch { }
            //本地连接对象
            DbLinkArgs currDblinkArgs = GetDbLinkArgs(currConnString, currDbType);

            return(currDblinkArgs);
        }