【发布时间】:2023-04-08 03:03:02
【问题描述】:
带有类库项目的 LINQ to SQL 连接字符串
默认情况下,创建新的 LINQ to SQL 模型 (.dbml) 会将 应用程序设置文件中的连接字符串以及 web.config/app.config。这对网络来说不是什么大问题 项目,但是类库项目呢?我有联系 我可以用它来检查所有页面中的连接的类,但我有一个 根本无法读取 DataContext 的错误。
这是一张显示我的问题的照片。
【问题讨论】:
默认情况下,创建新的 LINQ to SQL 模型 (.dbml) 会将 应用程序设置文件中的连接字符串以及 web.config/app.config。这对网络来说不是什么大问题 项目,但是类库项目呢?我有联系 我可以用它来检查所有页面中的连接的类,但我有一个 根本无法读取 DataContext 的错误。
这是一张显示我的问题的照片。
【问题讨论】:
一般来说,类库不支持配置文件。有一些方法可以让它工作,但这不是一个好的做法,因为不同的应用程序可能使用同一个库与数据库的不同实例进行交互。我建议查看像 Ninject 这样的依赖注入或控制反转解决方案,以将连接字符串从引用该库的应用程序传递给构造函数。
更新:
如果您绝对必须从程序集而不是调用应用程序中读取配置文件,则可以使用ConfigurationManager.OpenExeConfiguration() 来完成。 SO上有几个答案提供了这样做的代码示例,但我不会链接到它们,因为我强烈建议你不要走那条路。
【讨论】:
从外观上看,您没有使用 LINQ to SQL - 我只能看到一个 EntityFramework edmx。检查您的代码生成策略,并确保您尝试实例化正确的上下文名称(认为它是实体容器名称设置的任何内容)。
您还需要确保引用了 System.Configuration。
【讨论】:
您需要将连接字符串放在主应用程序 app.config 中
只需将连接字符串的副本放在那里,您就可以访问它们,或者在本例中为 web.config
【讨论】: