Use SqlDataReader em F #

Em c # eu uso scripts sql para adicionar dados em uma lista onde T seria uma classe com campos / propriedades mapeados para o script sql.

Como eu poderia fazer isso em F #? Esta peça usa um procedimento armazenado no modo padrão.

using (conn)
{
    conn.Open();
    using (SqlCommand cmd = new SqlCommand("dbo.query_here", conn))
    {
    cmd.CommandText = "dbo.query_here";
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    cmd.CommandTimeout = 600;
    cmd.Parameters.Add(new SqlParameter("@x1", Convert.ToString(x)));
    cmd.Parameters.Add(new SqlParameter("@y1", y));
    cmd.Parameters.Add(new SqlParameter("@z1", z));
    SqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        MyListOfClasses.Add(new MyDataClass(reader.GetInt32(reader.GetOrdinal("x"))           
                                            reader.GetDouble(reader.GetOrdinal("y")),
                                            reader.GetDouble(reader.GetOrdinal("a")),
                                            reader.GetDouble(reader.GetOrdinal("b"))));
    }
    reader.Close();
}
conn.Close();

Eu percebo F # não é tão simples como esta, mas eu preciso para obter esses dados em listas F # de uma maneira similar. Também preferiria sugestões que não eram funcionais por natureza e seguiam um padrão semelhante ao código C #.

Em um tópico anterior, alguém sugeriu o uso de registros, mas ainda assim, isso não estava relacionado ao SqlDataReader. Seria preferível ter uma lista de classes para poder usar getters e setters em cada item.

Eu deveria adicionar antes dos comentários inevitáveis ​​de "por que não usar apenas C #". Bem, obviamente, eu posso usar o C #, mas estou explorando as possibilidades de escrever algoritmos em F # e para isso eu preciso obter meus dados brutos do SQL Server.

questionAnswers(4)

yourAnswerToTheQuestion