0

我已经找到了如何使用|DataDirectory|连接字符串中的 来设置我的 wpf 应用程序的数据库文件所在的目录,但我希望更进一步。

如 msdn SqlConnection.ConnectionString 属性中所述,

通过使用 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从用户界面到业务再到数据访问的内容并创建连接字符串。

这是可能的,还是|DataDirectory|连接字符串构建器只处理魔术标签?

谢谢

4

1 回答 1

0

Well. There isn't. After decompiling System.Data (sorry) and analysing the available ConnectionString constructors I saw that there is only ExpandDataDirectory and it has hardcoded to the

const string DataDirectory = "|datadirectory|";

So... only datadirectoy is handled...

于 2014-02-25T11:56:22.083 回答