private static DbInstance CreateDbInstance(DbInstanceType type, Database database, DbTransaction transaction)
 {
     if (type == DbInstanceType.Default)
     {
         return(new DbInstance(database, transaction));
     }
     return(new AutoParameterDbInstance(database, transaction));
 }
        private static DbInstance GetDbInstance(DbInstanceType type, string databaseName)
        {
            if (string.IsNullOrEmpty(databaseName))
            {
                throw new ArgumentNullException("databaseName", "数据库名称不能为空。");
            }
            string key = GenerateKey(databaseName);

            if (ServiceContext.Current.Contains(key))
            {
                DataAccessContext context = (DataAccessContext)ServiceContext.Current[key];
                return(CreateDbInstance(type, context.Database, context.Transaction));
            }
            return(CreateDbInstance(type, GetDatabase(databaseName), null));
        }