【发布时间】:2020-06-15 20:38:57
【问题描述】:
我有一个现有的 ASP.NET MVC 4 Web 应用程序,其中所有代码文件都驻留在一个项目中:
- Satinge(.NET Framework MVC 4 Web 应用程序项目)
我现在将应用程序重新组织为表示层、数据层和服务层:
- Satinge(.NET Framework MVC 4 Web 应用程序 - 表示层项目)
- Satinge.Data(.NET Framework 类库 - 数据层项目)
- Satinge.Services(.NET Framework 类库 - 服务层项目)
我已将所有数据模型和迁移文件移至数据层,到目前为止,当我尝试在调试模式下运行它时,该应用程序构建良好并且可以正常工作。但是,当我尝试添加新模型时,它不会让我在 Package Manager Console 中运行 Add-Migration 命令(默认项目:Satinge.Data)。我收到以下错误:
无法生成显式迁移,因为以下显式迁移处于挂起状态:[--list of all migrations--]。在尝试生成新的显式迁移之前应用挂起的显式迁移。
它要我应用已经应用到数据库的迁移。
当我尝试运行 Update-Database 时,我收到一条错误消息:
数据库中已经有一个名为“现有表的名称”的对象。
【问题讨论】:
-
你有没有在运行这样的命令时声明启动项目
startup-project -StartupProject ProjectName -
@viveknuna 我正在使用 VS 2017 IDE,在包管理器控制台中我选择 Satinge.Data 作为默认项目,然后我尝试运行命令 PM> Add-Migration AddSample 和 PM> Update-Database
-
您在移动模型命名空间时是否更改了它们?
-
@timur 是的,我在移动模型和迁移文件后更改了命名空间。 Satinge.Models 到 Satinge.Data.Models 和 Satinge.Migrations 到 Satinge.Data.Migrations。
-
this answer 可能相关吗?
标签: asp.net-mvc-4 visual-studio-2017 ef-code-first entity-framework-migrations