My Program使用EF访问SQL CE数据库中的数据。当使用调试设置调试应用程序时,它工作得很好,但如果我使用释放设置,当程序试图通过EF访问数据库时,我会得到一个MetadataException。到目前为止我检查了什么:
- 调试和发布配置相同(相同的目标平台)
- app.config被复制到与可执行文件(Release)相同的目录 sdf数据库文件拷贝到Release
- 元数据工件处理设置为嵌入输出程序集
- 连接字符串名称在app.config和EF模型中相同
:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="GeoDataEntities" connectionString="metadata=res://*/Model.EF.Model.csdl|res://*/Model.EF.Model.ssdl|res://*/Model.EF.Model.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|DataDirectory|GeoData.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
装配模型。EF是命名空间,Model是edmx的名称,我想应该是对的。
我知道有很多关于MetadataException的帖子和博客,我试图解决这个问题,但到目前为止没有任何效果。
问好周杰伦我真的不知道我做了什么,但自从我从TFS签入和签出后,它就工作了。