我有一个包含5个表的数据库。一开始,我已经添加了这些表,但后来决定删除一些由于某些关系编译错误。
现在,当我想要添加它们时,我正在打开edmx文件 - >从数据库更新模型...我没有在添加选项卡下看到这些表,但只在“刷新”选项卡下。
如何将它们添加回来?
答案 0 :(得分:24)
要将表重新添加到模型中,首先需要从模型中删除表。 (在[model.Store]树中可以看到表格列表(参见“模型浏览器”窗格 - 您可以从右键单击菜单打开它)。 当您运行“从数据库更新模型...”时,该表将显示在“更新向导”的第一步中的“添加”选项卡中。
完成步骤:
删除模型中对表格的所有引用:
答案 1 :(得分:8)
我阅读了这个和其他搜索选项,但最后我找到了另一个帮助我缩短这个问题的答案。
从错误消息看起来您的某个表/视图没有 主键。 EF需要每个表都有一个主键才能 生成实体密钥。您仍然可以运行您的应用程序, 但我强烈建议您按警告添加主键。
<强>更新强>
如果某些时候你做得很好,仍然没有反映更改添加新列或更改数据类型。
这种尝试手动更新的最好方法,仍然没有希望,然后按照@mathijsuitmegen的建议,删除并添加表格,但这是首选的选项。
答案 2 :(得分:3)
更简单的解决方案是在Model Browser
下
[modelName].Store -> Tables/ViewS
删除未显示的表格。然后右键点击模型&#34; update from database
&#34;并且桌子应该在那里。
答案 3 :(得分:2)
您希望在模型中删除实体后重新添加实体 除了编辑edmx文件外,还有另一种方法可以做到这一点 您必须从数据库中临时删除该表。
注意:如果数据库尚未投入生产,我只会这样做!
所以在SQL Server Management Studio中首先创建一个脚本:
右键单击与模型中缺失的实体对应的表格。选择“Script Table as”,“CREATE To”,“New Query Editor Window”。
第二步是删除表格。再次右键单击并选择“删除”。确认删除。
返回Visual Studio,执行模型更新。
返回SQL Server Management Studio并运行刚刚创建的“创建”脚本。
该表将再次添加到您的数据库中。
在Visual Studio中,您现在可以再次进行更新,您的表格将显示在“添加”标签下!!!
答案 4 :(得分:0)
除了需要从模型中删除的上述引用列表外,如果您的表与其他表具有关联关系,请考虑删除 AssociationSetMapping 元素。