将实体模型(edmx)重新添加时,表格不显示

edmx entity-framework entity-model

我有一个包含5个表的数据库。一开始,我已经添加了这些表,但后来由于某些关系编译错误而决定删除一些。

现在,当我想要添加它们时,我正在打开edmx文件 - >从数据库更新模型...我没有在添加选项卡下看到这些表,而只是在“刷新”选项卡下。

我该如何添加它们?

一般承认的答案

要将表重新添加到模型中,首先需要从模型中删除表。 (表格列表在[model.Store]树中可见(参见“ 模型浏览器 ”窗格 - 您可以从右键单击菜单打开它。)当您运行“从数据库更新模型...”时,表格将会显示出现在“更新向导”第一步的“添加”选项卡中。

完成步骤:

  1. 在Visual Studio中关闭您的模型。
  2. 在文本编辑器中打开.edmx文件。
  3. 搜索并删除xml实体元素(请参阅下面的注释)。
  4. 在Visual Studio中打开您的模型。
  5. 单击从数据库更新模型。

要删除模型中对表的所有引用:

  • 在“EntityContainer”元素中,删除将“Name”属性设置为值[TableNameToReAdd]的所有“EntitySet”子元素。
  • 在'EntityContainer'元素中,删除所有'AssociationSet'子元素,其中存在'End'元素,其'EntitySet'属性设置为值[TableNameToReAdd]。
  • 在“EntityContainer”元素中,删除所有“EntityType”子元素,其中“Name”属性设置为值[TableNameToReAdd]。
  • 在'EntityContainer'元素中,删除所有'Association'子元素,其中存在'End'元素,其'Role'属性设置为值[TableNameToReAdd]。

热门答案

我读了这个和其他搜索选项,但最后我找到了另一个回答,帮助我缩短了这个问题。

从错误消息看起来您的某个表/视图没有主键。 EF需要每个表都有一个主键才能生成实体密钥。您仍然可以运行您的应用程序,但我强烈建议您按警告添加主键。

链接解决了我的问题。

更新

如果某些时候你做得很好,仍然没有反映更改添加新列或更改数据类型。

这个尝试手动更新的最好方法,仍然没有希望,然后按照@mathijsuitmegen的建议,删除并添加表,但这是首选的选项。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因