我已经找到了如何在连接字符串中使用|DataDirectory|
来设置我的wpf应用程序的数据库文件所在的目录,但我希望更进一步。
如msdn SqlConnection.ConnectionString Property中所述,
通过使用DataDirectory替换字符串,路径可以是绝对路径或相对路径。如果使用DataDirectory,则数据库文件必须存在于替换字符串指向的目录的子目录中。
现在,我想设置一个完整的位置,而不仅仅是DataDirectory
,它具有由应用程序控制的自定义DatabaseLocation
属性,因此我不需要处理连接字符串。
换句话说,我的连接字符串将来自:
connectionString="Data Source='|DataDirectory|\database.sdf'" providerName="System.Data.SqlServerCE.4.0"
进入这个:
connectionString="Data Source='|DatabaseLocation|" providerName="System.Data.SqlServerCE.4.0"
在代码中,我将读取用户配置并将方便的数据设置到正确的位置:
AppDomain.CurrentDomain.SetData("DatabaseLocation", someVarWithDatabaseLocation);
这样我就不需要从用户界面到业务的someVarWithDatabaseLocation
内容到dataaccess并创建连接字符串。
这是可能的,还是连接字符串构建器只处理|DataDirectory|
魔术标记?
谢谢
答案 0 :(得分:0)
好。没有。 在反编译System.Data(抱歉)并分析可用的ConnectionString构造函数后,我看到只有ExpandDataDirectory并且它已硬编码到
const string DataDirectory = "|datadirectory|";
所以...只处理datadirectoy ......