2011-07-20 129 views
0

我的程序使用EF从SQL CE数据库访问数据。当使用调试设置来调试应用程序时,它可以正常工作,但如果我使用发布设置,当程序试图通过EF访问数据库时,我会遇到MetadataException。 我到目前为止已经检查:发布版本中的MetadataException

  • 调试和发布配置都是相同的(相同的目标平台)
  • 在app.config复制到同一目录下的可执行文件(\发布)
  • 的SDF数据库文件被复制到\释放\
  • 元数据工件加工被设置为嵌入在输出组件
  • 连接字符串名称是的app.config和EF模型
相同

我的app.config:

<?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=&quot;Data Source=|DataDirectory|\GeoData.sdf&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
</configuration> 

组装Model.EF是命名空间和EDMX的型号名称,我觉得应该是正确的。

我知道有很多关于MetadataException的帖子和博客,我试图解决这个问题,但到目前为止没有任何工作。

问候

周杰伦

回答

0

我真的不知道我做了什么,但它的工作,因为我已经检查并从TFS签出。