.net 从v1到v4的实体框架转换问题

.net 从v1到v4的实体框架转换问题,.net,entity-framework,data-access-layer,.net,Entity Framework,Data Access Layer,将我的数据访问层项目从EntityFramework v1转换为v4后,每个实体类都会出现一系列错误: 错误10016:解析项“EntityTypeShape”时出错。异常消息为:“未解析的引用”NS.EntityName1“。DataAccessLayer\Model.edmx 及 错误10016:解析项“AssociationConnector”时出错。异常消息为:“NS.EntityName1”。DataAccessLayer\Model.edmx 有人知道这是什么以及如何修复吗?我也有同

将我的数据访问层项目从EntityFramework v1转换为v4后,每个实体类都会出现一系列错误:

错误10016:解析项“EntityTypeShape”时出错。异常消息为:“未解析的引用”NS.EntityName1“。DataAccessLayer\Model.edmx

错误10016:解析项“AssociationConnector”时出错。异常消息为:“NS.EntityName1”。DataAccessLayer\Model.edmx


有人知道这是什么以及如何修复吗?

我也有同样的问题。我不知道这是否是您的问题,但通过查看xml视图中的edmx,我发现在xml中,对于存在该错误的每个项目,我都有重复的引用。我所要做的就是删除重复的引用,一切正常

这里有一个例子来说明我的意思:

<EntityTypeShape EntityType="PackageManagementEntityModel.Package" Width="1.5" PointX="0.75" PointY="0.75" Height="3.5644742838541665" IsExpanded="true" />
<EntityTypeShape EntityType="PackageManagementEntityModel.ShipLane" Width="1.5" PointX="2.75" PointY="0.75" Height="1.7566536458333331" IsExpanded="true" />
<EntityTypeShape EntityType="PackageManagement.EntityModel.Package" Width="1.5" PointX="0.75" PointY="0.75" Height="3.5844742838541652" />
<EntityTypeShape EntityType="PackageManagement.EntityModel.ShipLane" Width="1.5" PointX="2.625" PointY="0.75" Height="1.7566536458333335" />

如果模型很小,可能最容易重新生成它。如果希望修复它,可以在转换之前或之后在XML编辑器中手动修改XML。在我的例子中,问题在于EntityType属性不正确——特别是名称空间不正确。我甚至不确定它在VS2008中是如何正确工作的,但我不想再继续下去了。 如果您不介意丢失模型的布局,最简单的修复方法是删除
标记内的所有内容,如下所示:

<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
  <Diagram Name="YourDiagramName">
  </Diagram>
</edmx:Diagrams>

保存它并在设计器中重新打开模型。这个问题现在应该解决了

如果要保留布局,而不是简单地删除
标记中的所有内容,则需要更正任何不正确的EntityType属性。诀窍是确保指定了完全限定的类型名。在我的例子中,名称空间中有一些额外的东西——不确定它是如何到达那里的,也不确定它在VS2008中是如何工作的,但纠正这一点是第一步。您可能希望通过查看为模型生成的代码来验证名称空间和实体名称


我在VS2008和VS2010中尝试了这个解决方案,得到了不同的结果。在VS2010中,只需更正EntityType属性即可立即修复该问题。在VS2008中,我再次打开模型时收到一个错误,“参数不正确”。为了解决这个问题,我可以再次手动编辑XML。这次我删除了所有的
标记(以及所有子元素)。然后保存了文件,一切似乎都恢复正常。

谢谢,但不幸的是,这不是我的案例。结果,他们引用了一些不存在的关系。我想EF应该删除它们。嗨,Max。我刚刚升级了我们的一个解决方案,我遇到了和你一样的问题。你找到解决这个问题的方法了吗?没有。我从头开始重建了一切。