Verwenden Sie SqlDataReader in F #

In C # verwende ich SQL-Skripte, um Daten zu einer Liste hinzuzufügen, in der T eine Klasse mit Feldern / Eigenschaften ist, die dem SQL-Skript zugeordnet sind.

Wie könnte ich das in F # machen? Dieses Stück verwendet eine gespeicherte Prozedur in der Standardweise.

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();

Mir ist klar, dass F # vielleicht nicht ganz so einfach ist, aber ich muss diese Daten auf ähnliche Weise in F # -Listen aufnehmen. Ich würde auch Vorschläge bevorzugen, die in der Natur nicht funktionsfähig waren und einem ähnlichen Muster wie C # -Code folgten.

In einem früheren Thread hat jemand vorgeschlagen, Datensätze zu verwenden, dies bezog sich jedoch nicht auf SqlDataReader. Es wäre vorzuziehen, eine Liste von Klassen zu haben, damit ich für jedes Element Getter und Setter verwenden kann.

Ich sollte vor den unvermeidlichen Kommentaren von "Warum nicht einfach C # verwenden" hinzufügen. Natürlich kann ich C # verwenden, aber ich erkunde Möglichkeiten, Algorithmen in F # zu schreiben, und um dies zu tun, muss ich meine Rohdaten von SQL Server beziehen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage