摘要 解决前期数据库优先添加的实体,然后数据库表结构发生变化后,导致代码操作EF插入更新数据失败问题

相比大家在使用实体操作数据库的时候,都是采取数据库优先,手动添加实体模型。但是随着后期需求的更改和变化,数据库的结构都会有很大的变化。比如主键缺少和改变,字段的删减。都会导致EF操作失败。很多人都是采用直接将整个.edmx文件删除掉,然后重新加载。这样做太麻烦了。下面介绍更新模型的正确姿势。

步骤一.双击.edmx文件,会出现所有模型的视图

点击空白处,右键,选择:从数据库更新模型选项,选择刷新或者添加删除。根据你自己的需求来。

那么问题来了,你可能发现,即使这样做了,还是没有变化,该出错的地方还是错的。那么进行第二步动作。

    步骤二、右击空白处,选择“验证”选项。这样所有的更新都会得到验证。才会有效

当然若果验证过程中,也有提示错误,如,字段没有得到映射等问题,那么进行步骤三。

步骤三。找到出现映射无效的那张视图表,选中它

右键

选择表映射,然后选择与之相应的表,这样就完成了映射。如图

若果及时选择了对应的依然报错,提示主键冲突问题。那就是左右对应的主键不一致导致的。进行步骤四。

步骤四.选择对应的视图

右击,选择从模型中删除选项。然后重新选择从数据库更新模型,添加刚刚删除掉的表,即可。

最新文章

  1. CAN总线 SJA1000中断
  2. [轉]Android Libraries 介紹 - Butter knife
  3. itellyou MSDN, 我告诉你 win7系统工具等
  4. Docker-创建支持ssh服务的镜像
  5. jQuery 动态添加瀑布流
  6. mysql查看日志
  7. 540B :School Marks
  8. Java 使用 Redis
  9. 视差滚动(Parallax Scrolling)效果的原理与实现
  10. Oracle sql语言模糊查询--like后面的通配符
  11. MSSQL 日期操作函数 总结
  12. Canvas 颜色反转
  13. RabbitMQ-从基础到实战(6)— 与Spring集成
  14. 结合JDK源码看设计模式——模板方法模式
  15. 移动端bug集合
  16. 微博第三方js-sdk登录
  17. 实体类和json互相转换
  18. Circles and Pi
  19. js基础知识--变量类型和变量计算
  20. 7、Qt MetaObject System详解

热门文章

  1. hive sparksession查询只显示defalt库问题
  2. navicat远程连接报1045 access denied for user'root'@'ip'(using pasword:yes".............
  3. Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR tensorflow-1.13.1和1.14windows版本目前不支持CUDA10.0
  4. iOS逆向系列-动态调试
  5. POST提交数据之---Content-Type的理解
  6. (上线时清缓存)laravel 5.1 的程序性能优化(配置文件) - 简书
  7. bootsrap-----固定布局解析
  8. zabbix_agentd 报错
  9. 手写代码注意点 -- int[]
  10. Android_Gallery(画廊)