C# 实体数据模型向导不显示新表

C# 实体数据模型向导不显示新表,c#,sql-server,entity-framework,visual-studio-2012,C#,Sql Server,Entity Framework,Visual Studio 2012,我使用MicrosoftSQLServer2012从脚本创建了一个sql数据库,并使用EntityFramework在C中生成了一些类。现在,我不得不修改并向该数据库添加许多新项,包括存储过程和新表 但是,在尝试在Visual Studio Ultimate 2012中重新生成类时,“实体数据模型向导”仍然以一周前的方式显示旧数据库,包括我删除的一些表。没有列出任何新内容。我尝试删除并重新创建数据库,重新启动这两个程序,并重新启动电脑,但都没有效果 我在Visual Studio中生成框架的步骤

我使用MicrosoftSQLServer2012从脚本创建了一个sql数据库,并使用EntityFramework在C中生成了一些类。现在,我不得不修改并向该数据库添加许多新项,包括存储过程和新表

但是,在尝试在Visual Studio Ultimate 2012中重新生成类时,“实体数据模型向导”仍然以一周前的方式显示旧数据库,包括我删除的一些表。没有列出任何新内容。我尝试删除并重新创建数据库,重新启动这两个程序,并重新启动电脑,但都没有效果

我在Visual Studio中生成框架的步骤包括:

将新项添加到项目中。 选择ADO.NET实体数据模型。 首先从数据库中选择代码。 选择“下一步”连接字符串已填充。 下一个屏幕是“选择对象和设置”窗口,在这里我仍然可以看到旧表,而不是新表。 在更改数据库之后,我是否需要采取一些特殊步骤,以使这些更改显示在实体框架中

更新:


我有一个从数据库更新模型的选项,但我的VisualStudio没有这样的选项。Web搜索表明它在模型浏览器窗口中找到,而我在VS中也没有找到。进一步的搜索表明此窗口在打开edmx文件后可用。我在整个电脑上搜索了这个文件扩展名,并找到了一些结果,但它们都来自其他人的项目。我找不到与此项目的c解决方案或sql数据库关联的.edmx。

在“实体数据模型”向导中,在“选择数据连接”屏幕上,我选择了“新建连接”,而不是使用现有连接点击“下一步”。选择服务器名称和数据库名称并重新连接似乎会刷新视图,现在新表已经显示出来

我有一种感觉,那将是我错过的一件很小的、十秒钟的事情

更新:

重新连接使新表可用,但存储过程不可用。下面是我如何修复它的


在模型向导中,无论出于何种原因,从数据库中选择“代码优先”将不包括存储过程。对我来说,正确的选项是数据库中的EF Designer。我不仅得到了新的表和存储过程,而且还生成了第一个选项无法创建的edmx文件。

我首先遇到了类似的代码问题。我遵循了问题中提到的所有步骤,但是没有生成表的模型

构建、清洁的解决方案 从web.config中删除连接字符串 删除“模型”文件夹中的所有文件 右键单击“模型”文件夹,添加新项目 选择ADO.NET实体数据模型 向模型添加名称 首先从数据库中选择代码 选择新连接 在web.config中保存连接设置-选中 我发现这是因为表没有主键。 所以我改变了桌子

[OrderId] [int] not null identity(1,1) primary key,
它成功了


如果有人遇到这种情况,我希望它能有所帮助。

我遇到了这个问题,结果是使用的SQL用户没有对新创建的表的select访问权限

对于所有新表,我在数据库的[tablename]上向[sqluser]运行了GRANT SELECT。您还可以将sql用户添加到服务器角色,如sysadmin


从数据库运行更新模型,然后显示新的表。

我删除了一个表,但没有看到它来重新添加它。我有不一致的EDMX文件。编辑EDMX文件时,我必须从“模型浏览器”窗口中删除对该表的所有引用,然后该表在EDMX编辑器中重新出现,并且我能够重新添加它


正如Mukesh Kumar建议的那样,谢谢,您可以在文本编辑器中执行此操作,但您必须知道自己正在执行的操作,但我会选择此解决方案作为最后一种可能,以避免在EDMX文件中创建更多的不一致性。

我对“代码优先”不太了解,但似乎您正在尝试执行“数据库优先”策略。首先选择代码可能是您的问题。在“选择对象和设置”中,您无疑是在代码中查看模型,而不是在数据库中。@pseudocoder:您会推荐其他选项吗?当我添加EDM时,会得到“空模型”或“从数据库生成”选项。在这一点上,首先没有提到代码。我会选择从数据库生成,然后确保我的连接字符串指向正确的服务器/db。我使用EF6。在“选择选项”下,我没有“从数据库生成”选项,但我有空模型。然而,数据库中的“代码优先”是我被指示用于项目的代码。我在文本编辑器中打开了EDMX文件,并在其中查找对象名称。然后,我找到了一个匹配项,并从文件中删除了该XML行并保存了它。删除该对象后,添加向导开始显示该对象。谢谢,Honza。除了Visual Studio不让我 由于某种原因,它跳过了“选择数据连接”并禁用了“上一步”按钮。啊!