gpt4 book ai didi

F# 类型提供程序和持续集成,第 2 部分

转载 作者:行者123 更新时间:2023-12-01 18:05:08 25 4
gpt4 key购买 nike

这是我之前关于 F# Type Providers and Continuous Integration 的问题的后续问题(实际上是几个) .

在我看来,使用 SqlDataConnection 类型提供程序作为编译时检查以确保代码/数据库完整性在功能分支驱动的开发中保持完整是一个好主意;您会知道在每次提交/构建时,没有对未应用于数据库的代码进行任何更改,假设构建数据库也是 CI 过程的一部分。

但是,出现了几个问题:

  1. 配置文件的名称(以及位置)在编译时与运行时不同,例如app.config -> MyApp.exe.config,如果您尝试使用这将导致运行时错误

    SqlDataConnection<ConnectionStringName="DbConnection", ConfigFile="app.config">

    (实际上,指定 ConfigFile="app.config" 是不必要的,因为它是默认值。)

    可以通过将 app.config 文件复制到输出目录(有一个设置)来避免运行时错误,但这会导致输出中同时包含 app.config 和 MyApp.exe.config 文件目录。不太漂亮。为类型提供程序添加单独的配置文件将是另一种解决方案,但恕我直言,这也不是很漂亮。

    问题:有没有人想出一个更优雅的解决方案来解决这个问题?

  2. 当您访问构建服务器时,会出现下一个问题。您很可能不想像开发时那样针对同一数据库进行编译,因此需要不同的连接字符串。是的,在生产中你还需要另一个。

    问题:您如何以最方便的方式解决这个问题?请记住,解决方案必须是 CI 流程的有效部分!

  3. 此策略需要在构建服务器上的每个构建上生成数据库,可能来自带有一些功能/冲刺更新脚本的基线脚本。

    问题:有人尝试过这个吗?它对构建时间有何影响?如果是,您是如何创建此步骤的?

最佳答案

在运行时,您可以使用接受连接字符串的GetDataContext重载。参见这里:Providing connection string to Linq-To-Sql data provider

关于F# 类型提供程序和持续集成,第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com