gpt4 book ai didi

entity-framework - 如何让 Entity Framework 类型提供程序使用运行时配置文件?

转载 作者:行者123 更新时间:2023-12-04 08:45:21 26 4
gpt4 key购买 nike

我有一个 F# 库项目,我正在使用一个 C# web 项目。我想在我的 F# 项目中使用 Entity Framework 类型提供程序,并让它从 Web.config 获取连接字符串- 但我很难让它工作。

type internal FooDb = 
SqlEntityConnection<ConnectionStringName="FooDb", Pluralize=true>

在设计时,我需要有一个 App.config F# 库项目中具有匹配名称的连接字符串的文件。

在运行时,当从 C# web 项目调用我的 F# 代码时,我收到一个错误,它无法找到“App.config”文件。这让我感到惊讶,因为我原以为在运行时它只会使用 ConfigurationManager.ConnectionStrings从当前事件的配置文件加载连接字符串(在 Web 应用程序的情况下, Web.config )。然而,情况似乎并非如此。

我尝试添加 ConfigFile范围:
type internal FooDb = 
SqlEntityConnection<ConnectionStringName="FooDb", ConfigFile="Web.config", Pluralize=true>

但这只是让它在设计时提示找不到 Web.config .

然后我重命名了 App.config F# 库项目中的文件到 Web.config这似乎已经使事情奏效了。但是,我对这个解决方案感到不安。这真的是它的工作方式吗?我的库项目中必须有一个 web.config 文件吗?如果我想从命令行可执行文件中使用相同的库,并且在该环境中配置文件名为 AssemblyName.exe.config,我该怎么办? ?

强制我对在不同上下文中可以有不同名称的配置文件的名称进行硬编码似乎非常脆弱,而且设计很差。请告诉我我遗漏了什么。

最佳答案

你遇到的这个问题确实很不幸,不知道你有没有遗漏什么。然而,SqlEntityConnection documentationFooDb应该有一个 GetDataContext重载,其中“在运行时确定连接字符串时可以使用 connectionString 参数”。也许这会给你一个足够体面的工作(即传递来自 ConfigurationManager.ConnectionStrings 自己的连接字符串)。

关于entity-framework - 如何让 Entity Framework 类型提供程序使用运行时配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977225/

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