【问题标题】:Freezing FSharp.Data SQL type冻结 FSharp.Data SQL 类型
【发布时间】:2018-02-18 20:13:06
【问题描述】:

我喜欢用 FSharp.Data.Sql 进行测试。但是我有两个问题。根据样本:

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

a) 每次代码发生更改时,编译器都会不断解析类型,这使得 intelisense 有点太慢,并且还需要永久的 Internet 连接。

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

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

【问题讨论】:

    标签: f# f#-data


    【解决方案1】:

    对于您的第一个问题,我相信SQLDataProvider 是一个擦除类型提供程序,因此您将无法做到这一点。对于其他类型的提供程序,有时可以生成一个 dll 并引用它。

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

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

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

    【讨论】:

    • 谢谢。我找到了 GetDataContext 调用。那应该解决硬编码连接字符串的问题。我正在查询 sql server,发现提供程序非常脆弱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多