使用F#Script中的app.config

Dav*_*ook 2 configuration f#

我在这里看到了几个关于堆栈溢出的相关问题,但是没有一个似乎有答案.我将提出问题,然后包括我找到的相关SO问题的链接.

我有一个用C#编写的核心域库,它利用了Entity Framework.因此,EF要求dbcontext将连接字符串传递给base(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
Run Code Online (Sandbox Code Playgroud)

谢谢,〜大卫

相关问题:

从App.config F#AppSettings提供程序获取并使用连接字符串

App.config和F#Interactive无法正常工作

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

Mar*_*ann 5

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

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

let db = new AnnotatorModel("some connection string")
Run Code Online (Sandbox Code Playgroud)

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

库不应该与app.config耦合.只有应用程序才能使用app.config.