一、删除操作、错误信息

删除操作:

          #region 遍历,删除foreach (PatientInfoHistroryModel patient in deletePatients){//PatientInfo_Table deletePatientInfoTable = new PatientInfo_Table()//{//    PatientKey = Convert.ToInt64(patient.PatientInfo),//    PatientID = patient.StudyID,//    PatientName = patient.PatientName,//    PatientSex = patient.PatientSex,//    PatientAge = patient.PatientAge,//    PatientBirthDate = Convert.ToDateTime(patient.PatientBrith),//    PatientWeight = Convert.ToInt64(patient.PatientWeight),//    PatientHeight = Convert.ToInt64(patient.PatientHeight),//    PatientSize = Convert.ToInt64(patient.PatientSize),//    PatientSource = Convert.ToInt64(patient.RecordSource),//    PrintFlag = Convert.ToInt64(patient.FilmPrint),//    StudyCompleteFlag = Convert.ToInt64(patient.StudyStutas),//    HangFlag = Convert.ToInt64(patient.SuspendState),//    PatientArchiveFlag = Convert.ToInt64(patient.PatientArchiveFlag),//};PatientInfo_Table deletePatientInfoTable = new PatientInfo_Table();deletePatientInfoTable.PatientKey = Convert.ToInt64(patient.PatientInfo);dataBase.Entry<PatientInfo_Table>(deletePatientInfoTable).State = System.Data.Entity.EntityState.Deleted;}

错误信息:

******因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为。这可能是因为某些实体是新的并且尚未接收数据库生成的键值。在此情况下,使用 "Add" 方法或者 "Added" 实体状态跟踪该图形,然后将非新实体的状态相应设置为 "Unchanged" 或 "Modified"。

二、错误原因

修改更新数据到数据库有两种方式:连接模式下和断开模式下,出现问题的原因在因为连接模式,同一个上下文要缓存了两个同一个主键的对象,EF的上下文不允许这种情况出现。如果我再new一次PatientInfo_Table,放一个new的实体进去跟踪.他会有2个相同ID的对象,然后就报异常了。

三、解决办法

针对上述问题的,解决办法:

方法1:dataBase.Dispose();

https://q.cnblogs.com/q/69905/(可以先断开连接数据)

方法2:attach、AsNoTracking

https://www.cnblogs.com/godbell/p/7360739.html

https://blog.csdn.net/sxf359/article/details/72673870

https://www.cnblogs.com/Amyn/p/6250481.html

DataBase First 基础(四) 删除或修改表时失败,因为相同类型的其他实体已具有相同的主键值***相关推荐

  1. win10删除/编辑注册表时出错的解决方法

    win10删除/编辑注册表时出错无法编辑的解决方法 win+r,输入regdit,定位到无法删除或者编辑的注册表项 单机右键,选择权限–>高级 所有者–>更改 高级 立即查找 找到自己的登 ...

  2. mysql数据库怎么添加主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  3. 如何增加mysql主键约束_mysql修改表时怎么添加主键约束?

    mysql中可以通过"ALTER TABLE 表名 ADD PRIMARY KEY(字段名);"语句在修改数据表时添加主键约束:当在修改表时要设置表中某个字段的主键约束时,要确保设 ...

  4. mysql 给几个主键值 批量校验是否存在_MySQL基础知识整理

    MySQL基础架构 MySQL基础架构 简单来说MySQL主要分为Server层和存储引擎层.Server层主要包括连接器.查询缓存.分析器.优化器和执行器等,所有跨存储引擎的功能都在这一层实现,比如 ...

  5. mysql 建表 日期格式_MySQL建表时,日期时间类型选择

    MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DA ...

  6. MybatisPlus:SQL语句打印、SQL分析、自定义主键值策略填充(IdType.INPUT)、动态表名、多租户、枚举、类型处理器、连表自定义SQL(使用wrapper)

    文章目录 1. 简单使用以及配置 - 带分页配置 2. 用法 2.0 Wrapper属性 2.1 @TableId - 自定义主键生成策略 2.2 @TableField - 自定义字段值填充 2.3 ...

  7. MySQL入门之插入、删除、修改表数据

    ---------------------------------------------------------------------------------------------------- ...

  8. MySql 清空、删除、截断表时1701错误

    项目已经进行一段时间,整体的开发工作已经完成.接下来要进入综合测试阶段,所以想要将数据清理一下,然后报了1701错误,由错误提示得知是外键约束的问题 解决办法:关闭外键约束->清空表.截断表-& ...

  9. 【BUG修复】修改表单,提交后,提示登录状态已过期

    最近在设备管理中,新增了一点功能. 然后我悲哀的发现,特种设备和安全附件的修改功能不能用了. 每次修改页面,点击提交后,都会弹出这个页面: 但是诡异的是,新增反而没问题. 我找了各种方式,最后甚至找到 ...

最新文章

  1. (C++)1037 在霍格沃茨找零钱的两种解法
  2. 2018-3-14(论文-优化问题的智能算法及其哲学内涵)笔记二(智能算法与人类智能以及遗传算法与生物进化对比)
  3. WCF之元数据交换 (Metadata Exchange)
  4. windows time 服务无法启动 错误1058 解决方法
  5. Java黑皮书课后题第3章:*3.18(运输成本)一个运输公司使用下面的函数,根据运输重量(以磅为单位)来计算运输成本(美元为单位)。编写程序,提示用户输入包裹重量,显示运输成本
  6. 读书笔记 --- [基础知识点] 小结3
  7. 【面向对象】面向对象的分析与设计概述
  8. 【Spring源码】AOP切面源码
  9. Android学习系列--App调试的几个命令实践
  10. Android WebView使用基础
  11. Git拉取指定远程分支
  12. 十条网站盈利模式分析总结
  13. 系统出现“预体验成员内版本遇到 问题”错误的处理(亲身经历)
  14. 怎样从旧版本激活TeamViewer新版本界面?
  15. 解决jmeter5.4.3在高分辨率下的显示问题
  16. 我写了一个套路,助你随心所欲运用二分搜索
  17. FastBoot BootLoader Recovery 模式学习
  18. 【Neo4j】第 9 章:预测关系
  19. python解析pdf中文乱码_使用Python第三方库pdfminer提取PDF内容,并解决中文编码不支持的问题...
  20. centsos7网络连接激活失败_CenOS 7初始安装后无网络的解决办法

热门文章

  1. In aggregated query without GROUP BY报错
  2. dashboard 镜像源_使用国内docker镜像源
  3. ARM开发板运行执行文件,找不到库报错的解决方法
  4. 【SqlServer-函数】
  5. GEO数据挖掘全流程分析
  6. 前端实现lottie案例
  7. HTML5七夕情人节表白网页(流星雨3D旋转相册) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码
  8. VS2019 C语言,在一个项目中添加多个包含main函数的源文件并分别调试运行
  9. Cesium官方教程9--粒子系统
  10. c语言十进制转换成k进制,C语言10进制转换为k进制的问题