【发布时间】:2012-11-18 06:17:36
【问题描述】:
在现有的 C# 2010 应用程序中,我想将 linq 添加到 sql 语句以连接到 sql server 2008 数据库。当我将此 linq 设置为 sql 数据库时,我希望能够使用 app.config 文件设置与数据库的连接。
我已经读到,当您以这种方式设置数据库连接时,将使用默认数据库。基本上,当您在同一个数据库上进行数据库时,这是可以的。但是,当您从单元测试数据库转移到用户接受和/或生产数据库时,就会出现问题,因为数据库连接是硬编码在 aqpplication 中的。
那么你能告诉我和/或用代码告诉我如何防止这个问题发生吗?
【问题讨论】:
-
每个环境都有一个 web.config,并使用 build > 配置管理来定位要使用的 web.config(例如,debug、alpha、beta)。除了使用 app.config 文件外,单元测试也是如此。 alpha、beta 和 live 的单元测试将由持续集成处理。
-
当您在 Visual Studio 中为 Linq To SQL 数据上下文创建连接时,它应该在配置文件中创建一个连接字符串。那将是您配置的内容。它在设置文件中也有一个默认的硬编码,但配置应该覆盖它。另一种选择是将自定义连接字符串值添加到配置文件并使用该特定值初始化数据上下文。
-
挑剔的旁注:如果测试涉及数据库,则它不是单元测试。这是一个集成测试:)
-
什么是“单元测试数据库”?
-
如何让配置文件覆盖设置文件?
标签: linq-to-sql c#-3.0 app-config