1

我正在尝试以某种方式将 F# 与现有的 Postgresql 数据库连接起来,使我能够在开发过程中利用数据库类型(通过类型提供程序或实体框架,或它们的组合)。

使用Npgsql可以直接进行原始连接。例如,以下代码段使用 F# 打印 Postgres 表的内容。

open Npgsql

let connectionString = "(my postgres connection string)"

let getResultSet (connection:NpgsqlConnection) (queryString:string) =
    let command = new NpgsqlCommand(queryString, connection)
    let dataReader = command.ExecuteReader()
    seq {
        while dataReader.Read() do
            yield [for i in [0..dataReader.FieldCount-1] -> dataReader.[i]]
    }

let printResults = 
    let conn = new NpgsqlConnection(connectionString)
    conn.Open()
    try
        let resultSet = getResultSet conn "select * from myTable;"
        for r in resultSet do
            for d in r do
                printf "%s\t" (d.ToString())
            printfn ""
    finally
        conn.Close()

在 F# 上使用带有 Postgresql 的实体框架来获取此设置的类型提供程序或启用的最佳方法是什么?

4

1 回答 1

2

由于 Npgsql 是 ADO.NET 提供程序,您应该能够将SqlEntityConnection类型提供程序与实体框架 DBML 文件一起使用。

有关详细信息,请参阅:http: //msdn.microsoft.com/en-us/library/hh362322.aspx

于 2013-05-31T19:45:12.783 回答