我有两个项目:
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);
但这肯定是一个非常肮脏的解决方法)。指定连接字符串的正确方法是什么?
答案 0 :(得分:0)
您的基于代码的解决方案非常精确且有效