修改一个数据表的字段值,可是这个字段是索引列,修改有错误提示

修改一个数据表的字段值,可是这个字段是索引列,修改有错误提示,第1张

错误的大概意思就是,数据库中你要修改的字段本来没有有主键约束或唯一约束,而现在你要在这个字段上加上主键或唯一约束,如果数据库中没有数据这样做当然不会有任何问题,可是从你的错误来看你的数据库中已经有了数据,而且在你要修改的字段上有重复的数据

例如:你的数据库中有两个字段id,name,此时你的数据库中的数据:001,zhangsan002,lisi003,zhangsan,此时你在name字段上加主键约束或唯一约束的话就会出你说的错误

解决办法:

1、如果你的数据库允许你现有的数据有重复的数据,你可以在可视化界面下建立主键或约束,在完成那一步里有个选项会询问是否检测现有数据,勾掉就可以了

2、如果你的数据库不允许你现有的数据有重复的数据,这样就比较麻烦了,你可以再别的列上加约束,也可以用多列上建立约束

注:其中有些地方说的不一定准确,还请以事实为依据

问题在于你的:

oldinstance = instance这句上。

EF的跟踪机制比想像的要复杂,oldinstance由于是dacEntities返回(查询到)的,是被打上跟踪标记的,你直接让oldinstance指向另的对象,那么oldinstance就“失去控制”了,你应该直接在oldinstance上进行你的更改 *** 作,然后savechanges,不用设置oldinstance的state,因为当你修改oldinstance的属性时,跟踪机制会自动知道你改变了oldinstance的属性,将它的状态设为modified。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9906567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存