在Visual Studio 2013(更新2和更高版本的Update 4)中,使用实体框架6.1.2,我在创建EDMX文件时遇到问题。
创建文件时,我添加一个新项,选择"ADO.NET 实体数据模型",无论我创建"空 EF 设计器模型"还是"从数据库创建 EF 设计器"(也无论如果基于数据库构建,我可能会选择哪个数据库),我都会收到一条非常通用的错误消息:
"由于对象的当前状态,操作无效"
它把我踢回添加新项向导。生成了 *.edmx,但如果我尝试打开生成的 *.edmx 文件,则会收到另一条通用消息:
"操作无法完成。"
*.designer.cs 文件似乎已填充,但并非所有程序集引用都添加到项目中;必须手动添加 System.Data.Entity,以便解析对 System.Data.Objects 的引用。
我已经为Visual Studio 2012和2013的两个版本安装了Entity Framework 6 Tools for Visual Studio。我尝试使用绑定到 TFS 和未绑定的项目执行此操作,并且错误在这两种情况下都仍然存在。
如果我在Visual Studio 2012中打开解决方案,同样的错误仍然存在。我能够在Visual Studio 2010中成功添加一个*.edmx文件,然后在Visual Studio 2013中打开该项目,并且*.edmx文件存在并且可以访问;它打开,我可以查看它,但是如果我移动或编辑,则会出现以下错误:
"此事务中涉及的 XmlModels 不可编辑。
有没有人对正在发生的事情有任何建议,或者我的环境中可能缺少什么?我对系统上设置不正确的内容感到茫然。
基于错误"此事务中涉及的 XmlModel 不可编辑",我能够追踪到对类似问题的响应:
实体框架 无法刷新 TFS 2010 下的数据库表
简而言之,我的项目和解决方案存储在 C:\Code\C#\Application\[etcetera] 的磁盘上。
问题是解决方案/项目/文件路径中的"#"字符。快速将解决方案复制到 C:\Code\CSharp\[etcetera] 解决了添加和编辑现有 *.edmx 文件的问题。
我回答这个问题是为了保存古人的智慧。