c# - SQL Express 连接字符串 : mdf file location relative to application location

标签 c# sql connection-string database-connection sql-server-express

我正在使用 SQL Express 数据库作为 c# 单元测试项目的一部分。我的数据库位于此处:

./Databases/MyUnitTestDB.mdf

我想在 app.config 中使用相对路径或变量,而不是将连接字符串定义为:

AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf 

我看到了 |DataDirectory| 的使用,但我认为这仅适用于 Web 应用程序是否正确?

我想在应用程序配置文件中控制它,因为在生产中应用程序使用托管的 sql 数据库。

最佳答案

谢谢大家,我结合了你们的回答。

在我的 app.config 文件中,我的连接字符串定义如下

<add name="MyConnectionString"
    connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />

在我的单元测试类中,我使用以下设置 DataDirectory 属性

[TestInitialize]
public void TestInitialize()
{
    AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases"));

    // rest of initialize implementation ...
}

关于c# - SQL Express 连接字符串 : mdf file location relative to application location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3500829/

相关文章:

c# - 如何从具有管理员权限的进程启动没有管理员权限的新进程?

c# - HttpWebRequest 异步调用填充堆栈并剥离 Windows Phone 上的响应式(Reactive)扩展

mysql - 从sqlite语法到mysql语法

mysql - 找到每个组合出现的平均金额

c# - 网络上数据库的 SQL 连接字符串

web-config - 从 web.config 中分离 ConnectionStrings 和 mailSettings?可能的?

c# - 为什么即使在强制垃圾回收时,已完成的线程使用的内存也不会被释放?

c# - 在 C# 中将名字和姓氏与全名字符串分开

SQL Azure 超大规模

asp.net - 数据库连接 ASP.NET - PostgreSQL