将WPF应用程序迁移到.net Framework 4.5.1后的实体框架异常

时间:2015-08-27 15:40:17

标签: c# .net wpf entity-framework .net-framework-version

我已将一个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版本。

1 个答案:

答案 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.

我不确定这是否是正确的方法,但它解决了我的问题。