在appdata文件夹中创建sql server压缩文件

Jes*_*sen 11 c# sql-server-ce entity-framework-4.1

我正在开发一个简单的软件,它首先使用Entity Framework代码,然后使用sql server compact 4.此时此设置正常运行.实体框架创建sql server压缩文件(如果它尚不存在).数据库的路径是从存储在app.config文件中的连接字符串中定义的.它是这样构建的:

<connectionStrings>
  <add name="DataContext" 
       connectionString="Data source=Database.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

但是,我想将数据库放在当前用户的Application Data文件夹(我的win7机器上的C:\ Users\User\AppData\Roaming文件夹)中的文件夹中.我已经尝试将connectionstring的数据源设置为%APPDATA%\ Database.sdf,但是这不起作用,我得到了"路径中的非法字符"异常.

我想坚持使用connectionstring方法,因为我想为我的单元测试使用不同的数据库而不是我的实际应用程序.这样,通过将app.config文件放在项目的根目录中,可以轻松地修改数据库.

有人能引导我朝着正确的方向前进吗?

Teo*_*gul 22

使用以下:

AppDomain.CurrentDomain.SetData("DataDirectory", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));

<connectionStrings>
  <add name="DataContext" 
       connectionString="Data source=|DataDirectory|Database.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

  • 您需要在"DataDirectory"之前添加另一个管道(| DataDirectory |).只是觉得这可能有助于某人因为我被困在它上一段时间!http://msdn.microsoft.com/en-us/library/cc716756(v=vs.100).aspx (4认同)