忽然间,我在实例化生成的ObjectContext
类时不断收到MetadataException
。 App.Config中的链接字符串看起来是正确的 - 自上次工做以来没有改变 - 我尝试从底层数据库从新生成一个新模型(edmx文件)而没有任何变化。 web
有人有主意吗? sql
更多细节:我没有更改任何属性,我没有更改任何输出程序集的名称,我没有尝试在程序集中嵌入EDMX。 我离开工做只等了10个小时,直到我回来。 而后它再也不工做了。 数据库
我试太重新建立EDMX。 我试太重新建立这个项目。 我甚至尝试从头开始从新建立数据库。 没有运气,不管如何。 app
这个小改动有助于解决这个问题。 ide
我有3个项目的解决方案。 spa
connectionString="metadata=res://*/Model.Project.csdl|res://*/Model.Project.ssdl|res://*/Model.Project.msl;
改为 code
connectionString="metadata=res://*/;
我也有这个问题,由于个人web.config中的链接字符串与个人EDMX所在的程序集的app.config中的链接字符串略有不一样。 不知道为何会改变,但这里有两个不一样的版本。 ip
App.config中: ci
<add name="SCMSEntities" connectionString="metadata=res://*/Model.SMCSModel.csdl|res://*/Model.SMCSModel.ssdl|res://*/Model.SMCSModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SANDIEGO\sql2008;initial catalog=SCMS;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
Web.config文件: 资源
<add name="SCMSEntities" connectionString="metadata=res://*/Model.SCMSModel.csdl|res://*/Model.SCMSModel.ssdl|res://*/Model.SCMSModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SANDIEGO\sql2008;initial catalog=SCMS;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
修复它只是复制app.config字符串(注意最后的小差别 - 而不是“ App=EntityFramework
”它想要“ application name=EntityFramework
”)到web.config而且问题解决了。 :)
我有一样的问题。 我用反射器查看了个人编译后的dll,并看到资源的名称不正确。 我更名了,如今看起来很好。
我有相似的错误。 我从新建立了这个项目(长篇故事),并从旧项目中删除了全部内容。 我以前没有意识到个人模型已经在名为“模型”的目录中,如今位于名为“模型”的目录中。 一旦我在Web.Config中更改了链接:
<add name="RecipeManagerEntities" connectionString="metadata=res://*/Model.Recipe.csdl
对此:
<add name="RecipeManagerEntities" connectionString="metadata=res://*/Models.Recipe.csdl
一切正常(将Model
更改成Models
)。 请注意,我必须在此字符串中更改这三个位置。
当我意外地将edmx文件的构建操做(在IDE中的属性下显示)从“EntityDeploy”切换为“无”时,这发生在我身上。 EntityDeploy是为您填充元数据的内容:请参阅http://msdn.microsoft.com/en-us/library/cc982037.aspx