EF操作两个有相同ID的实体报错:附加类型“...”的实体失败

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

报错详情:

       EF操作两个有相同ID的实体报错:附加类型“...”的实体失败_第1张图片

原因分析:

代码:

EF操作两个有相同ID的实体报错:附加类型“...”的实体失败_第2张图片


EF操作两个有相同ID的实体报错:附加类型“...”的实体失败_第3张图片


解决方法:

对于设备表因为是要保存修改的值而不是新建再保存,所以采用先从上下文里把实体查询出来.再修改再保存的方法。

改后的代码:

EF操作两个有相同ID的实体报错:附加类型“...”的实体失败_第4张图片


EF操作两个有相同ID的实体报错:附加类型“...”的实体失败_第5张图片

你可能感兴趣的:(EF操作数据库实体)