【发布时间】:2014-12-02 19:37:35
【问题描述】:
我使用 Microsoft SQL Server 2012 从脚本创建了一个 sql 数据库,并使用实体框架在 C# 中生成了一些类。现在我不得不修改并向该数据库添加许多新项目,包括存储过程和新表。
但是,在尝试在 Visual Studio Ultimate 2012 中重新生成类时,实体数据模型向导仍然显示旧数据库(一周前的样子),包括我删除的一些表。没有列出任何新内容。我试过删除并重新创建数据库,重新启动两个程序,然后重新启动电脑没有效果。
我在 Visual Studio 中生成框架的步骤是:
- 向项目添加新项目。
- 选择 ADO.NET 实体数据模型。
- 从数据库中选择 Code First。
- 选择下一步(连接字符串已填好)。
- 下一个屏幕是“选择对象和设置”窗口,在该窗口中我仍然可以看到旧表(而不是新表)。
在更改数据库后我需要采取一些特殊步骤以使这些更改显示在实体框架中吗?
更新:
我有一个“从数据库更新模型”选项的线索,但我的 Visual Studio 没有这样的选项。网络搜索表明它在“模型浏览器窗口”中找到,我在 VS 中也没有找到。进一步搜索表明该窗口在打开“edmx”文件后变为可用。我已经在整个 pc 中搜索了该文件扩展名并找到了一些结果,但它们都来自其他人的项目。我找不到与此项目的 c# 解决方案或 sql 数据库关联的 .edmx。
【问题讨论】:
-
我对 Code First 了解不多,但您似乎正在尝试执行数据库优先策略。选择 Code First 可能是您的问题。在“选择对象和设置”中,毫无疑问,您正在查看代码中的模型而不是数据库。
-
@pseudocoder:您还有其他推荐的选择吗?
-
当我添加 EDM 时,我会看到“空模型”或“从数据库生成”选项。那时没有提到“代码优先”。我会选择“从数据库生成”,然后确保我的连接字符串指向正确的服务器/数据库。我使用 EF 6。
-
在“选择选项”下,我没有“从数据库生成”选项,但我有“空模型”。然而,“数据库中的代码优先”是我被指示用于该项目的那个。
标签: c# sql-server entity-framework visual-studio-2012