这个问题是关于通过Entity Framework设计器将一个名为“Position”的新字段添加到现有表中。我期望发生的事情(如果我错了,请纠正我)是添加字段,选择通过模型更新数据库并获取在我的数据库中创建的新字段。取而代之的是,我得到了“在第xxx行映射片段时出现错误3004问题”。我的环境使用Visual Studio 2015和EF5,数据库托管在Oracle MySQL上。我正在开发的项目是一个网站,我可以进一步维护和升级。
以下是我的步骤:
尝试再次单击“保存”并重新编译,但我仍然遇到相同的错误。我需要在这一点上说,我花了一整天的时间在网上搜索我得到的除了3004以外的各种错误代码,但这里是我停下来并转向SO寻求指导的地方。我知道这里有关于错误3004的其他线程,我确实读了很多。我发现的一条建议是将DDL生成模板更改为支持MySQL的模板,因为Visual Studio将默认为SQL(通过单击设计器内部的空白区然后单击“属性”选项卡来完成):
我也试过了,但没有改变,错误仍然存在......我也尝试删除设计器中的整个表并从数据库更新,表重新出现,但有一行“Error 11007”行,加上表格的关联没有正确连线。我做的另一件事是在Notepad ++中打开.edmx文件,看看我是否可以在那里添加我的新字段,但它只是觉得错误,所以我放弃了。
我是以错误的方式接近这个吗?我想做的就是添加一个新领域!我已经停下来了,我对EF的体验不是很好,我对这个数据库的特殊设置感到很沮丧,坦率地说,我敢说我认为它有点破碎。这就像我必须触摸它时处理一个全新的宗教!
从长远来看,我想升级到EF6并摆脱设计师,但这是另一个故事。
对我的问题的任何建议将不胜感激。
感谢。
答案 0 :(得分:0)
最终我不得不篡改模型的XML文件(.edmx文件)来手动添加我的新字段并将其设置为整数,因为我无法满足Visual Studio的要求。我正在处理的Web项目看起来相当复杂,其中包含大量子项目,如“DataAccess”,“EntityModel”,“ManagerLayer”,我的Web文件夹和许多其他目录。我认为我的EF需要完全重做,我的猜测是它从一个非常古老的EF版本开始,并且在维护方面现在正在改变它。