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

Or *_*r A 17 entity-framework edmx entity-model

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

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

我该如何添加它们?

mat*_*gen 25

要将表重新添加到模型中,首先需要从模型中删除表.(表格列表在[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].


Aja*_*707 8

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

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

链接解决了我的问题.

更新

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

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