我在这里看到了几个关于堆栈溢出的相关问题,但是没有一个似乎有答案.我将提出问题,然后包括我找到的相关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提供程序获取并使用连接字符串
这不是你要问的,但我还是会添加这个答案:
添加构造函数重载AnnotatorModel使您可以传递连接字符串.这将使您能够写:
let db = new AnnotatorModel("some connection string")
Run Code Online (Sandbox Code Playgroud)
完全依赖app.config中的连接字符串将库紧密耦合到该单个配置源.这不是好的图书馆设计.您不仅在使用FSI时遇到问题,而且还难以在运行时更改"配置值",从数据库而不是文件等加载它们.
库不应该与app.config耦合.只有应用程序才能使用app.config.