ASP.NET MVC中执行add-migration Customer失败的解决求助
解决方案
1. 彻底清理迁移残留文件
- 打开项目中的
Migrations文件夹,删除所有迁移相关文件(包含.cs迁移类、.Designer.cs设计文件)。 - 务必删除
[你的DbContext名称]ModelSnapshot.cs文件(例如若DbContext名为AppDbContext,则文件为AppDbContextModelSnapshot.cs),这个快照文件记录着EF对模型的历史状态,残留会导致add-migration无法识别完整模型结构。
2. 确认数据库状态
- 打开目标数据库(如SQL Server),确保:
Customers表已完全删除;- 系统表
__MigrationHistory也已删除(若之前存在)。
3. 重新生成完整迁移
- 打开Package Manager Console,执行命令生成初始化迁移:
此时生成的迁移代码应包含创建Add-Migration InitialCustomerSetupCustomers表的所有字段,而非仅添加CusGenID。 - 执行更新命令完成数据库表创建:
Update-Database
问题原因说明
你看到的提示并非错误,是EF的正常说明——迁移文件包含当前模型快照,用于后续迁移的变更对比。但之前未清理快照文件,EF误以为模型仅新增了CusGenID字段,因此只生成了添加该字段的迁移。彻底删除快照后,EF会重新扫描完整模型,生成创建全表的迁移。
额外检查:确保你的DbContext类中已正确声明Customer实体的DbSet:
public DbSet<Customer> Customers { get; set; }
若无此声明,EF不会将Customer实体纳入迁移范围。
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

