我有两个项目:
1 - “存储库”文件夹中带有 SqlCe 数据库的“域”
2 - “网络” mvc4 项目
app.config 中“域”项目中的连接字符串如下所示(由向导自动创建):
<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);
但这肯定是一个非常肮脏的解决方法)。指定连接字符串的正确方法是什么?