使用嵌入式DB发布项目与实体框架连接

时间:2010-12-27 19:52:12

标签: entity-framework

我有一个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=&quot;Data Source=MapProjectDB2.sdf&quot;" providerName="System.Data.EntityClient" />

但是当我发布我的项目并从一键部署文件夹运行它时,例外是“底层数据提供程序无法打开”。

所以我需要以某种方式连接到我的嵌入式数据库。在此先感谢谷歌点击这个有点参差不齐。

我应该提到数据库是库(DLL)项目的成员,该项目是从另一个项目加载的。

1 个答案:

答案 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=&quot;Data Source=|DataDirectory|\MapProjectDB2.sdf&quot;" providerName="System.Data.EntityClient" />