Exemplo n.º 1
0
        public static async Task <IEnumerable <T> > Query <T>(string sql, DynamicParameters param = null, IDbTransaction dbTransaction = null, IDbConnection connection = null, SQLType type = SQLType.MySql)
        {
            if (connection != null)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                param = param ?? new DynamicParameters();
                return(await connection.QueryAsync <T>(sql, param, dbTransaction));
            }
            else
            {
                switch (type)
                {
                case SQLType.SQLServer:
                    using (IDbConnection conn = new SqlConnection(ConnectionString))
                    {
                        conn.Open();
                        param = param ?? new DynamicParameters();
                        return(await conn.QueryAsync <T>(sql, param));
                    }

                case SQLType.MySql:
                    using (IDbConnection conn = new MySqlData.MySql.Data.MySqlClient.MySqlConnection(ConnectionString))
                    {
                        conn.Open();
                        param = param ?? new DynamicParameters();
                        return(await conn.QueryAsync <T>(sql, param));
                    }

                default:
                    throw new Exception("Wrong type");
                }
            }
        }