该路径对SqlServerCe无效

时间:2013-11-08 08:43:16

标签: sql-server-ce connection-string

我有两个项目:

1 - 在“存储库”文件夹中使用SqlCe数据库的“域”

2 - “Web”mvc4项目

app.config中“Domain”项目中的连接字符串如下所示(它是由向导自动创建的):

    <connectionStrings>
        <add name="Domain.Properties.Settings.MyDbConnectionString"
          connectionString="Data Source=|DataDirectory|\Repositories\MyDb.sdf"
          providerName="Microsoft.SqlServerCe.Client.4.0" />
   </connectionStrings>

我已将其复制粘贴到'Web'项目的web.config:

<connectionStrings>
    <add name="Domain.Properties.Settings.MyDbDbConnectionString"
      connectionString="Data Source=\Repositories\MyDb.sdf"
      providerName="Microsoft.SqlServerCe.Client.4.0" />
  </connectionStrings>

当我运行'Web'应用程序时,它会抛出异常:

  

路径无效。检查数据库的目录。 [路径=   \ Repositories \ MyDb.sdf]

此路径存在于“Web”项目的bin目录中。这有什么不对?

我可以在代码中使用它:

var connectionString = ("Data Source=" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(DbRepository)).GetName().CodeBase) + "\\Repositories\\GameStoreDb.sdf").Replace("file:\\", string.Empty);

但这肯定是一个非常肮脏的解决方法)。指定连接字符串的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您的基于代码的解决方案非常精确且有效