尝试将字段添加到表

时间:2016-05-21 14:02:13

标签: c# mysql entity-framework

这个问题是关于通过Entity Framework设计器将一个名为“Position”的新字段添加到现有表中。我期望发生的事情(如果我错了,请纠正我)是添加字段,选择通过模型更新数据库并获取在我的数据库中创建的新字段。取而代之的是,我得到了“在第xxx行映射片段时出现错误3004问题”。我的环境使用Visual Studio 2015和EF5,数据库托管在Oracle MySQL上。我正在开发的项目是一个网站,我可以进一步维护和升级。

以下是我的步骤:

1。在模型浏览器中查找表,单击Show in Diagram。

enter image description here

2。在模型内部,我右键单击表格 - >添加新 - >新标量属性并在表格中键入新字段“位置”。

enter image description here

3。单击“保存”图标以保存模型

enter image description here

4。然后我得到错误3004:

enter image description here

5。我意识到在映射细节中我的新字段没有显示,我无法在那里输入手动添加它。

enter image description here

6。我可以看到新的字段已添加到syncitem类中,实际上我希望它是一个整数,所以我继续手动更改它。

enter image description here

尝试再次单击“保存”并重新编译,但我仍然遇到相同的错误。我需要在这一点上说,我花了一整天的时间在网上搜索我得到的除了3004以外的各种错误代码,但这里是我停下来并转向SO寻求指导的地方。我知道这里有关于错误3004的其他线程,我确实读了很多。我发现的一条建议是将DDL生成模板更改为支持MySQL的模板,因为Visual Studio将默认为SQL(通过单击设计器内部的空白区然后单击“属性”选项卡来完成):

enter image description here

我也试过了,但没有改变,错误仍然存​​在......我也尝试删除设计器中的整个表并从数据库更新,表重新出现,但有一行“Error 11007”行,加上表格的关联没有正确连线。我做的另一件事是在Notepad ++中打开.edmx文件,看看我是否可以在那里添加我的新字段,但它只是觉得错误,所以我放弃了。

我是以错误的方式接近这个吗?我想做的就是添加一个新领域!我已经停下来了,我对EF的体验不是很好,我对这个数据库的特殊设置感到很沮丧,坦率地说,我敢说我认为它有点破碎。这就像我必须触摸它时处理一个全新的宗教!

从长远来看,我想升级到EF6并摆脱设计师,但这是另一个故事。

对我的问题的任何建议将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

最终我不得不篡改模型的XML文件(.edmx文件)来手动添加我的新字段并将其设置为整数,因为我无法满足Visual Studio的要求。我正在处理的Web项目看起来相当复杂,其中包含大量子项目,如“DataAccess”,“EntityModel”,“ManagerLayer”,我的Web文件夹和许多其他目录。我认为我的EF需要完全重做,我的猜测是它从一个非常古老的EF版本开始,并且在维护方面现在正在改变它。