奇怪的是,几天前它运行良好。我向表中添加了一个新列,并打算通过设计器更新模型,现在它显示“实体数据模型设计器无法显示您请求的文件。您可以使用 XML 编辑器编辑模型。”
新字段没有什么特别值得注意的,它只是 SQL Server 2008 中的一个不可为空的位字段。
奇怪的是,几天前它运行良好。我向表中添加了一个新列,并打算通过设计器更新模型,现在它显示“实体数据模型设计器无法显示您请求的文件。您可以使用 XML 编辑器编辑模型。”
新字段没有什么特别值得注意的,它只是 SQL Server 2008 中的一个不可为空的位字段。
适用于 Visual Studio 2017、2019
我搜索了解决方案,但想出了一些 NUGET 包和扩展的安装,但没有任何结果。
解决方案(Visual Studio 上缺少实体框架)
这在我身上发生过几次,通常是在从颠覆中提取解决方案时。重建项目一直为我解决了这个问题。
我也遇到了那个烦人的屏幕。不,我不想用 XML 编辑我的模型……我想要漂亮的设计师!就我而言,我添加了一个没有主键的表。修理...
在 XML 中打开 edmx
删除错误的表。应该用“<-- ERROR”注释很好地定义它。
清洁和重建。
关闭并重新打开 Visual Studio(是的,这很烦人但很有必要)
再重建一次,然后打开您的 edmx 文件。应该打开设计师罚款。
希望这可以帮助。
通过删除文件并重新生成它来修复。
这种情况经常发生在我们身上(通常来自错误的合并),并且我们的 EDMX 文件超过 50k 行,这使得目测问题变得不可能。但是,首先,您可以使用其中一个在线 XML 解析器(例如https://onlinexmltools.com/validate-xml)来确定 XML 是否正确。一旦 XML 有效,文件至少应该在 XML 编辑器中打开(我假设您使用的是 Visual Studio):然后您可以使用 Alt+PageDn(编辑 > 转到 > 下一个问题) - 摆动的下划线和相关提示通常是真正的帮助。通过这种方式,我已经成功地多次复活了我们的 EDMX。
当我将一个字段添加到在函数中用作 RETURN (SELECT TableName.* .... ) 的表中时,这发生在我身上
未刷新 EDMX 中该函数的 ReturnType 节点的 CollectionSet 子节点。
要修复它,您只需运行 ALTER FUNCTION(无需实际更改它),然后从 Visual Studio 中的数据库更新模型。
有时会发生此问题,因为模型的 XML 表示存在一些冲突。在我的例子中,错误是因为模型有一个冲突的引用,换句话说,有一个对在 XML 中手动删除的表的引用并且删除没有正确完成(他们离开了 EntityType 引用但被删除了其他的)。
我刚刚打开 XML 文件,问题被下划线了,我刚刚删除它,它解决了问题,模型显示没有任何问题。
只是有一个类似的问题:设计器窗口中没有任何内容。
双击模型浏览器中的每个实体使它们重新出现。
我没有删除 edmx 的选项。
我尝试清理,退出 vs,然后构建。
解决方案:将源代码管理中的粘贴复制到 .edmx 和 .edmx.diagram 中,然后重新构建。
我从一个特别讨厌的合并中得到了这个错误。
我通过修改安装和选择 .net 桌面开发模块 + 单个组件解决了这个问题:Entity Framework 6 工具和 .NET Framework 3.5 开发工具。
我不知道 less 是否可以做到这一点。
合并后我也遇到了同样的问题。幸运的是,在签入窗口中撤消对 edmx 和相关文件的更改并重新添加新文件为我解决了这个问题。
当我们将 Visual Studio 解决方案从旧版本迁移到 VS 2017/2019 时,可能会出现这种情况。因此,我通过执行以下步骤解决了它(更改以粗体突出显示):
<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
到
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
<Schema Namespace="MyModelName" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
到
<Schema Namespace="MyModelName" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
完成后,关闭并再次打开 edmx。
这应该可以解决问题。
我刚刚通过重新安装 Oracle Developer Tools for Visual Studio(我当前的版本是 2019 16.7.4)解决了我的“实体数据模型设计器不会打开 edmx 文件”问题。我在 Visual Studio 的解决方案资源管理器窗口中右键单击 .edmx 文件,选择“打开方式...”选项,然后立即出现重新安装弹出窗口。
在我的情况下 edmx.diagram 文件在文件末尾有不相关的文本,例如
<AssociationConnector Association="MyModel.FK_SomeTable_SomeOtherTable" />>>>>>>> FEATURE/Blahlblah
删除后
>>>>>>> FEATURE/Blahlblah
得到它的工作。
编辑您的 xml 文件(edmx,尤其是 edmx.diagram)检查并更正它们
修复它的最快捷方法是从旧文件中复制整个“模型”文件夹,然后删除(或重命名)模型文件夹的当前内容。
然后打开您的 edmx 并使用“从数据库更新”选项刷新内容。
我用其他方法花了将近 5 个小时,但仍然无法正常工作。使用这种复制粘贴方法只花了 15 分钟,问题就解决了。
如果您在尝试从两个实体中删除一对多关系时遇到此问题:
Association
具有表示关系的外键名称的元素并将其删除AssociationSet
具有表示关系的外键名称的元素并将其删除EntityType
关系两边的元素并确保NavigationProperty
删除相关元素EntityType
关系的多方面的元素。删除Property
在其上建立外键的 Id 元素保存文件并在实体数据模型设计器中重新打开它