使用 F# 脚本中的 app.config

Using app.config from F# Script

我在这里看到了几个关于堆栈溢出的相关问题,但是 none 似乎有答案。我将提出问题,然后包含指向我发现的相关 SO 问题的链接。

我有一个用 C# 编写的核心域库,它利用了 Entity Framework。因此,EF 需要 dbcontext 将连接字符串传递给基础 (dbcontext)。在我的例子中,连接字符串位于 app.config(或 web.config)中,当然取决于顶级项目,名称是 "AnnotatorModel".

我需要从我的 F# 脚本中实例化 DBContext 以测试一些查询和分析。

我已将其添加到我的 F# 项目中的 app.config 并尝试了一些关于 SO 的答案但没有成功。有没有人知道一个简单直接的方法来完成这个?

这是代码,意识到它在尝试实例化 dbcontext AnnotatorModel 时中断。

let PredictBestEntities (number:int) (tokens:string seq) =
   let db = new AnnotatorModel()    
   tokens 
   |> Seq.map ...etc etc

谢谢, ~大卫

相关问题:

App.config and F# Interactive not working

https://social.msdn.microsoft.com/Forums/vstudio/en-US/5b4dba22-28ec-4bbd-bc53-c5102d0b938f/using-fsi-and-an-appconfig?forum=fsharpgeneral

这不是你要问的,但我还是会添加这个答案:

AnnotatorModel 添加构造函数重载,使您能够传递连接字符串。这将使您能够编写:

let db = new AnnotatorModel("some connection string")

完全依赖 app.config 中的连接字符串将库与单一配置源紧密耦合 。这不是好的图书馆设计。您不仅在使用 FSI 时遇到问题,而且还很难在 运行 时更改 'configuration values',从数据库而不是文件加载它们,等等

库不应耦合到 app.config。只有应用程序应该使用 app.config.