我的程序使用EF从SQL CE数据库访问数据 . 使用调试设置调试应用程序时,它工作正常,但如果我使用发布设置,当程序尝试通过EF访问数据库时,我会收到MetadataException . 到目前为止我检查过的内容:
-
调试和发布配置完全相同(同一目标平台)
-
将app.config复制到与可执行文件相同的目录(\ Release)
-
将sdf数据库文件复制到\ Release \
-
元数据工件处理设置为嵌入输出程序集
-
连接字符串名称在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="Data Source=|DataDirectory|\GeoData.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
程序集Model.EF是命名空间,模型是edmx的名称,我认为应该是正确的 .
我知道有很多关于MetadataException的帖子和博客,我试图解决这个问题,但到目前为止还没有任何工作 .
最好的祝福
松鸦
1 回答
我真的不知道我做了什么,但它已经工作,因为我已经签入并从TFS签出 .