Max*_*Max 7 .net entity-framework data-access-layer
将我的数据访问层项目从EntityFramework v1转换为v4后,每个实体类都会出现一堆错误:
错误10016:解析项'EntityTypeShape'时出错.异常消息是:'未解析的引用'NS.EntityName1'.'.DataAccessLayer\Model.edmx
和
错误10016:解析项"AssociationConnector"时出错.异常消息是:'NS.EntityName1'.'.DataAccessLayer\Model.edmx
有谁知道这是什么以及如何解决它?
如果模型很小,那么重新生成它可能是最简单的.如果您更愿意修复它,可以在转换之前或之后手动修改XML编辑器中的XML.在我的例子中,问题是EntityType属性不正确 - 特别是命名空间不正确.我不确定它在VS2008中是如何工作的,但我没有进一步追求它的愿望.如果您不介意丢失模型的布局,最简单的方法是删除<Diagram>
标记内的所有内容,这样看起来像这样:
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram Name="YourDiagramName">
</Diagram>
</edmx:Diagrams>
Run Code Online (Sandbox Code Playgroud)
保存并在设计器中重新打开模型.现在应该解决这个问题.
如果要保留布局,而不是简单地删除<Diagram>
标记内的所有内容,则需要更正任何不正确的EntityType属性.诀窍是确保指定了完全限定的类型名称.在我的情况下,命名空间中有一些额外的东西 - 不确定它是如何到达它或如何在VS2008中工作,但纠正这是第一步.您可能希望通过查看生成的模型代码来验证命名空间和实体名称.
我在VS2008和VS2010中尝试了这个解决方案并获得了不同的结果.在VS2010中,只需更正EntityType属性即可立即修复问题.在VS2008中,我再次打开模型时收到错误,"参数不正确." 为解决此问题,我能够再次手动编辑XML.这次我删除了所有<AssociationConnector>
标签(以及任何子元素).然后保存了文件,一切似乎再次起作用.
我有完全相同的问题。我不知道这是否是您的问题,但我通过查看 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" />
Run Code Online (Sandbox Code Playgroud)