冻结FSharp.DataSQL类型

Freezing FSharp.Data SQL type

我很享受 FSharp.Data.Sql 的测试。但是我有两个问题。根据示例:

type sql =
SqlDataProvider<
    dbVendor,
    connString,
    IndividualsAmount = indivAmount,
    UseOptionTypes = useOptTypes>

a) 每次代码发生变化时编译器都会继续解析类型,这使得智能感知有点太慢并且还需要永久的互联网连接。

b) 在代码中包含主机、用户和密码可能便于测试和学习,但绝不能进入生产代码,理想情况下这些是环境变量,但 FSharp 数据需要文字。

是否可以冻结类型,以便至少只解析一次,然后在运行时提供连接字符串?

关于您的第一个问题,我认为 SQLDataProvider 是擦除类型提供程序,因此您将无法执行此操作。对于其他类型的提供程序,有时可以生成一个 dll 并引用它。

关于数据库性能,可以对其进行调整,但这将取决于底层驱动程序,例如 Postgres

对于第二个问题,可以在app.config file中指定连接字符串。

还有其他访问数据库的方法,例如DapperEF Core