VB.NET EF6 Code First添加DbSet属性后触发模型变更异常
解决EF6 Code First添加DbSet后模型变更异常的方法
当你在MyDbContext中新增DbSet(Of DbEnvironment)后,EF检测到实体模型与现有数据库结构不一致,因此抛出该异常,解决方案如下:
标准迁移流程(推荐)
这是Code First模式下更新数据库的官方正确流程:
- 打开Visual Studio的包管理器控制台(Package Manager Console)
- 在控制台顶部选择你的数据访问项目作为默认项目
- 执行命令创建新迁移脚本:
Add-Migration AddDbEnvironmentTable
该命令会生成对应DbEnvironment实体的数据库表创建逻辑,生成的迁移文件会包含时间戳和你指定的名称。
- 执行命令将迁移应用到实际数据库:
Update-Database
执行完成后,数据库会新增DbEnvironments表(EF默认按DbSet名称复数化生成表名),同时更新__MigrationHistory表记录本次模型变更。
额外检查点
- 确认
DbEnvironment类的主键配置:EF会自动识别名为Id的int类型属性为主键,并设置为自增列,你的代码已满足该要求,无需额外配置。 - 如果此前未启用过迁移,需先执行
Enable-Migrations命令初始化迁移配置,再执行上述Add-Migration和Update-Database命令。
内容的提问来源于stack exchange,提问作者Benjamin Bouchet
相关产品推荐
相关产品推荐

