我有一个SQL Server CE 3.5 DB,它与“属性”设置为“嵌入式”。当我从VS 2010运行它时,数据库有一个关联的.edmx文件和实体框架代码。
app.config字符串如下:
<add name="MapProjectDB2Entities1" connectionString="metadata=res://*/MapProjectDB.csdl|res://*/MapProjectDB.ssdl|res://*/MapProjectDB.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=MapProjectDB2.sdf"" providerName="System.Data.EntityClient" />
但是当我发布我的项目并从一键部署文件夹运行它时,例外是“底层数据提供程序无法打开”。
所以我需要以某种方式连接到我的嵌入式数据库。在此先感谢谷歌点击这个有点参差不齐。
我应该提到数据库是库(DLL)项目的成员,该项目是从另一个项目加载的。
答案 0 :(得分:2)
我需要将DB添加到我的Exe项目中。从那里我需要将配置字符串更改为以下内容:
区别仅在于| DataDirectory | \ part
<add name="MapProjectDB2Entities1" connectionString="metadata=res://*/MapProjectDB.csdl|res://*/MapProjectDB.ssdl|res://*/MapProjectDB.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|DataDirectory|\MapProjectDB2.sdf"" providerName="System.Data.EntityClient" />