【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

报错如图:

【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

背景:项目使用ef模型,在做拆库项目时转移表结构,表转移到其他库后测试环境拉取model过程中未能直接拉取序列等信息

报错原因:没有设置model主键id 自增长的identity属性,导致添加报错。

解决

1.可以直接在model增加identity属性,model文件需要改两处

         【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

model右键打开方式>选择自动编辑器选择程序(XML)

【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

 一处是<edmx:StorageModels>节点下id字段增加StoreGeneratedPattern="Identity" 

【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

一处是<edmx:ConceptualModels>节点下增加annotation:StoreGeneratedPattern="Identity" 

【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

2.可以尝试在edmx文件中将对应实体ID的StoreGeneratedPattern改为Identity。

如下:

【异常(Oracle)】对数据库所做的更改已成功提交,但在更新对象上下文时出错。

3.也可以在建表之后增加序列和触发器实现自增长

具体如下:https://jingyan.baidu.com/article/b2c186c81c1ea0c46ef6ffca.html