我当前的连接字符串是:
<connectionStrings>
<add name="myConnectionString"
connectionString="Data Source=(LocalDB)v11.0;Initial Catalog=CapacityDatabase.mdf;Integrated Security=True;Connect Timeout=10"
providerName="System.Data.SqlClient"/>
</connectionStrings>
这很好,除了数据库是在C:UserscurrentUser
中创建的之外,我该如何更改它,使其在程序运行的同一文件夹中创建,或者定义我选择的不同位置?
您缺少AttachDBFilename=|DataDirectory|
DataDirectory|(包含在管道符号中(是替换字符串指示数据库的路径。它消除了将导致几个问题的完整路径硬编码为完整路径数据库的路径可以在不同的地方序列化。DataDirectory还使共享项目和部署变得容易应用程序。
MSDN 报价
使用AttachDBFilename连接字符串关键字添加数据库到您的LocalDB实例。使用AttachDBFilename时,如果不使用数据库连接字符串指定数据库的名称关键字,当应用程序关闭。
尝试像这样更改连接字符串:
<add name="myConnectionString"
providerName="System.Data.SqlClient"
connectionString="Data Source=(LocalDB)v11.0;AttachDbFileName=|DataDirectory|CapacityDatabase.mdf;InitialCatalog=CapacityDatabase;Integrated Security=True;MultipleActiveResultSets=True" />
编辑
|DataDirectory|是一个占位符,在ASP.Net MVC模板的情况下,它指的是目录App_Data。这样就可以为数据库文件指定一个相对路径。您可以这样定义|DataDictionary|的值:
AppDomain.CurrentDomain.SetData("DataDirectory", @"C:XYZApp_Data");
但是不可能使用指向目录结构中较高位置的相对路径。