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

标签 c# sql-server entity-framework visual-studio-2012

我使用 Microsoft SQL Server 2012 从脚本创建了一个 sql 数据库,并使用 Entity Framework 在 C# 中生成了一些类。现在我不得不修改许多新项目并将其添加到该数据库,包括存储过程和新表。

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

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

  • 向项目添加新项目。
  • 选择 ADO.NET 实体数据模型。
  • 从数据库中选择代码优先。
  • 选择“下一步”(连接字符串已填写)。
  • 下一个屏幕是“选择对象和设置”窗口,在这里我仍然看到旧表(而不是新表)。

更改数据库后我是否需要采取一些特殊步骤才能使这些更改显示在 Entity Framework 中?

更新:

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

最佳答案

我在使用 Code First 时遇到了类似的问题。我遵循了问题中提到的所有步骤,但没有生成表格的模型。

  • 构建、清理解决方案
  • 从 web.config 中删除连接字符串
  • 删除模型文件夹中的所有文件
  • 右键单击 Models 文件夹,添加,新项目
  • 选择 ADO.NET 实体数据模型
  • 为模型添加名称
  • 从数据库中选择代码优先
  • 选择新连接
  • 在 web.config 中保存连接设置 - 选中

我发现是因为表没有主键。 所以我修改了表格

[OrderId] [int] not null identity(1,1) primary key,

它奏效了。

如果有人遇到这个问题,我希望它能有所帮助。

关于c# - 实体数据模型向导不显示新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27257529/

相关文章:

c# - WCF Rest 服务中的后台工作

c# - ASP.NET MVC 和 MemoryCache - 我如何使用它?

c# - 如何检测所有者表单何时从内部控件关闭?

c# - Entity Framework 附加/更新混淆(EF Core)

c# - 如何使 EntityFramework 关系可查询?

c# - 开拓者 : is it possible to bind a generic item to a property by its name using reflection?

.net - 使用 SQLBulkCopy - SQL Server 2016 中的表比 SQL Server 2014 中的表大得多

sql-server - SQL Server-如何将 'ALTER INDEX'与变量一起用作参数

sql-server - SQL Azure : list all logins and users

c# - Entity Framework 4.1、Generic Repository 和 ObservableCollection