搭建数据库后如何运行迁移

时间:2019-08-05 10:53:03

标签: .net entity-framework migration core scaffolding

我有一个使用EF Core的.NET Core项目。数据库中已经有一些表,因此我使用EF Core脚手架命令将所有表导入到我的应用程序中。

一切都很好,我已经建立了模型,可以使用它们来访问数据库。

现在,我想像EF Core Code First方法一样更改模型。我更改模型并运行迁移。

但是我的迁移失败,并显示以下错误消息:

错误CS0102:类型“ mydbContext”已经包含“激活”的定义

“激活”是我数据库中的表。数据库中的每个表都会引发此错误。而且我无法运行迁移。

我的问题是,如何成功运行迁移并继续使用“代码优先”方法?

我看过很多地方和Microsoft文档。但是没有一个例子说明如何在成功搭建好脚手架后进行迁移。

PM> Add-Migration Initial -Context MyApp.Models.mydbContext

error CS0102: The type 'mydbContext' already contains a definition for 
'Activation'

error CS0102: The type 'mydbContext' already contains a definition for 
'Session'

....

我希望能够成功运行迁移,并能够通过代码更新数据库表。

1 个答案:

答案 0 :(得分:1)

此问题的简单解决方案是删除迁移的Up()方法(Migrations / initial文件夹)中的所有功能。

现在运行Update-Database命令。这将在数​​据库和模型之间同步数据库状态。

现在,根据需要更改模型,添加新的迁移,然后运行Update-Database命令。

希望这对其他人有帮助!