我有一个使用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'
....
我希望能够成功运行迁移,并能够通过代码更新数据库表。
答案 0 :(得分:1)
此问题的简单解决方案是删除迁移的Up()方法(Migrations / initial文件夹)中的所有功能。
现在运行Update-Database命令。这将在数据库和模型之间同步数据库状态。
现在,根据需要更改模型,添加新的迁移,然后运行Update-Database命令。
希望这对其他人有帮助!