Пример #1
0
        public async Task <RedisClientFactory> QueryByName(string name)
        {
            RedisClientFactory factory = null;
            await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _redisConnectionFactory.CreateReadForRedisClientFactory(), async (conn, transaction) =>
            {
                SqlTransaction sqlTran = null;
                if (transaction != null)
                {
                    sqlTran = (SqlTransaction)transaction;
                }

                await using (SqlCommand command = new SqlCommand()
                {
                    Connection = (SqlConnection)conn,
                    CommandType = CommandType.Text,
                    CommandText = string.Format(@"SELECT {0} FROM [RedisClientFactory] WHERE name=@name;", StoreHelper.GetRedisClientFactoryStoreSelectFields(string.Empty)),
                    Transaction = sqlTran
                })
                {
                    var parameter = new SqlParameter("@name", SqlDbType.VarChar, 150)
                    {
                        Value = name
                    };
                    command.Parameters.Add(parameter);
                    await command.PrepareAsync();
                    SqlDataReader reader = null;

                    await using (reader = await command.ExecuteReaderAsync())
                    {
                        if (await reader.ReadAsync())
                        {
                            factory = new RedisClientFactory();
                            StoreHelper.SetRedisClientFactoryStoreSelectFields(factory, reader, string.Empty);
                        }
                        await reader.CloseAsync();
                    }
                }
            });

            return(factory);
        }