关于.net:实体数据模型设计器不会打开edmx文件

Entity data model designer won't open the edmx file

奇怪的是,几天前它运行良好。我在表中添加了一个新列,并打算通过设计器更新模型,现在它显示"实体数据模型设计器无法显示您请求的文件。您可以使用XML编辑器来编辑模型。"

关于新字段,没有什么特别值得注意的地方,它只是SQL Server 2008中的一个不可为空的位字段。


对于Visual Studio 2017

我搜索了解决方案,但提出了一些NUGET软件包和扩展的安装,但没有解决。

解决方案(Visual Studio上的缺少实体框架)

  • 我在计算机上搜索了Visual Studio Installer并将其打开。
  • 在Visual Studio专业版2017下。
  • 我单击"更多"以查看更多选项。我选择了修改
  • 选择单个组件(第二个选项卡)
  • 在SDK,库和框架下检查实体框架
  • 然后单击修改
    该过程完成后,EDMX文件将打开。

  • 我也遇到了那个烦人的屏幕。不,我不想用XML编辑模型...我想要漂亮的设计师!在我的情况下,我添加了一个没有主键的表。要修复...

    1)用XML打开edmx

    2)删除错误的表。应使用" <-ERROR "注释进行正确定义。

    3)清理并重建。

    4)关闭并重新打开Visual Studio(是的,这很烦人,但有必要)

    5)再重建一次,然后打开edmx文件。应该打开设计器的罚款。

    希望这会有所帮助。


    这种情况在我身上发生过几次,通常是在从Subversion撤出解决方案时。重建项目始终为我解决了这个问题。


    通过删除文件并重新生成来修复。


    这种情况在我们身上发生了很多(通常是由于合并错误),并且我们的EDMX文件超过了5万行,这使问题无法引起关注。但是,首先,您可以使用一个在线XML解析器(例如https://onlinexmltools.com/validate-xml)来确定XML是否正确。一旦XML有效,该文件至少应在XML编辑器中打开(我假设您使用的是Visual Studio):然后可以使用Alt PageDn(编辑>转到>下一期)-经常出现下划线和相关提示真正的帮助。这样,我已经成功地使我们的EDMX复活了几次。


    当我向一个表中添加一个字段时发生了这种情况,该表在函数中用作RETURN(SELECT TableName。* ....)

    未刷新EDMX中该函数的ReturnType节点的CollectionSet子节点。

    要修复此问题,您只需运行ALTER FUNCTION(无需实际更改),然后在Visual Studio中从数据库更新模型。


    在Visual Studio 2019中,我可以通过使用内置XML编辑器打开.edmx文件来解决此问题。

    Visual Studio显示带下划线的错误,如下所示:

    enter image description here

    检查"错误列表"窗口(红色X图标)...

    一旦摆脱了所有错误,设计人员就会按预期显示。


    有时会发生此问题,因为模型的XML表示存在一些冲突。在我的情况下,错误是由于模型具有冲突的引用引起的,换句话说,存在对在XML中手动删除的表的引用,并且删除未正确完成(它们保留了EntityType引用,但是删除了其余的所有内容。

    我刚刚打开XML文件,并给该问题加了下划线,然后将其删除,然后解决了该问题,显示了该模型,没有任何问题。


    我刚刚通过重新安装Visual Studio的Oracle Developer Tools(我的当前版本是2019 16.7.4)解决了"实体数据模型设计器将无法打开edmx文件"的问题。我在Visual Studio的"解决方案资源管理器"窗口中右键单击.edmx文件,选择了"使用...打开"选项,并立即显示重新安装弹出窗口。


    当我们将Visual Studio解决方案从旧版本迁移到VS 2017/2019时可能就是这种情况。
    因此,我通过执行以下步骤解决了问题(更改以粗体突出显示):
    1.更改:

    1
    <edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">

    1
    <edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">

  • 变更(所有发生):
  • 1
    <Schema Namespace="SilverAndgemModel" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">

    1
    <Schema Namespace="SilverAndgemModel" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">

    完成后,再次关闭并打开edmx。

    这应该可以解决问题。


    合并后我也遇到了同样的问题。幸运的是,在签入窗口中撤消对edmx和相关文件的更改,然后重新添加新文件为我解决了该问题。


    我通过修改安装并选择.net桌面开发模块来解决了该问题。各个组件:
    实体框架6工具和.NET Framework 3.5开发工具。

    我不知道能不能少花些功夫。


    我无法删除edmx。

    我尝试清洁,退出vs,然后建造。

    解决方案:将粘贴从源代码控制复制到.edmx和.edmx.diagram中,然后重新生成。

    我从一个特别讨厌的合并中收到此错误。


    有一个类似的问题:设计器窗口中没有任何内容。

    在模型浏览器中双击每个实体,使其重新出现。