我已将一个WPF复杂应用程序的.Net框架从3.5更新到4.5.1。 我已将所有项目的Target Framework更改为4.5.1。
更改.net框架后,我收到以下错误。
System.Data.Entity.dll中出现未处理的“System.Data.EntityCommandCompilationException”类型异常
内部异常消息: - “EntityContainer'ApplicationNameDataContext'的映射和元数据信息不再与用于创建预生成视图的信息匹配。”
有没有想过为什么会这样?
VS2010和.Net frmwrk 3.5正常运行。 Project有System.Data.Entity Dll的4.0.0.0版本。
答案 0 :(得分:0)
经过大量搜索,我发现如果我将edmx的所有Schema改回旧版本,它就会开始工作。
右键单击edmx,使用文本编辑器打开它并更改以下行。
1.
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
to <edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
2.
<Schema Namespace="Application.Model.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
to
<Schema Namespace="Application.Model.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
3
<edmx:ConceptualModels> <Schema Namespace="Application.Model" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2009/11/edm" annotation:UseStrongSpatialTypes="false" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation">
to
<edmx:ConceptualModels> <Schema Namespace="Application.Model" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation">
4
<edmx:Mappings>
<Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2009/11/mapping/cs">
to
<edmx:Mappings>
<Mapping Space="C-S" xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
5 And in <edmx:Designer> change
xmlns="http://schemas.microsoft.com/ado/2009/11/edmx to
xmlns="http://schemas.microsoft.com/ado/2007/06/edmx.
我不确定这是否是正确的方法,但它解决了我的问题。